Skip to content

Surface missing sink implementations instead of silently dropping sends #3

@devblac

Description

@devblac

Surface missing sink implementations instead of silently dropping sends

Context

I misconfigured a sink name in a rule and saw alerts vanish with no warning. The runner logged nothing and carried on, making it hard to spot the wiring mistake.

Problem

In handleEvents, if a rule references a sink missing from the sinks map, we skip delivery when s == nil without any error or log. Misconfigured rules quietly drop events.

Expected behavior

If a rule references a missing sink, we should error (or at least log loudly) instead of silently continuing. Valid configurations should behave exactly as before.

Scope / non-goals

Don’t redesign sink construction; just ensure missing sinks are surfaced clearly.

Acceptance criteria

  • Runner handling fails or logs an explicit error when a rule references an unknown sink.
  • Existing valid configs continue to process events.
  • A test covers the missing-sink scenario.

Hints

handleEvents in internal/engine/runner.go is the likely spot; validation in NewRunner would also work. Add a test in internal/engine/runner_test.go. Run go test ./internal/engine.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingenginehelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions