fix(debounce): handle removed config during execution (#4788)
## Description
Prevent debounce timeout execution from panicking when the function has
been updated and its debounce configuration was removed after the
debounce item was queued.
StartExecution still needs a key while rotating the stored debounce
pointer. Treat a missing debounce config like an omitted debounce key
and fall back to the function ID.
Adds a regression test that exercises StartExecution with a persisted
debounce item and a current function definition without debounce
configuration.
## Testing
Before the fix:
go test -count=1 -run ^TestStartExecutionWithRemovedDebounceConfig$
./pkg/execution/debounce
Failed with a nil-pointer panic in debouncer.debounceKey, reached from
debouncer.StartExecution.
After the fix:
go test -count=1 -run ^TestStartExecutionWithRemovedDebounceConfig$
./pkg/execution/debounce
go test -count=1 ./pkg/execution/debounce
Both pass.
## Release note
Prevent debounce timeout execution from crashing after debounce
configuration is removed from a function.
## Migration note
None. B
Bruno Scheufler committed
e405defa8048daf9edabbca2664b6c1e90221702
Parent: a54673a
Committed by GitHub <noreply@github.com>
on 8/27/2026, 4:44:05 AM