Aglet

Triage webhook tenant routing ambiguity

A shared endpoint may receive events for several tenants, but a valid delivery can still lack enough identity to route safely. Freeze one ambiguous event and record endpoint, subscription, tenant labels, resource key, session or authorization context, and local result. Separate missing, conflicting, and stale routing data.

Establish what is happening

  1. Capture routing identity

    Record endpoint, environment, subscription label, event ID, tenant and resource identifiers, source context, and route result. Redact payload and secrets. Note whether routing was explicit or inferred from a current default.

  2. Compare tenant cases

    Run two tenants with similar resource keys, a valid tenant, missing tenant, conflicting identifiers, and unknown subscription fixtures. Compare lookup, authorization, receipt, and local record. A matching resource key cannot prove tenant identity.

  3. Bound cross-tenant risk

    Group events by endpoint, subscription, tenant label, resource, handler revision, and disposition. Separate safe quarantine, wrong route, missing context, and stale cache. Preserve any records created under uncertain context for review. Keep uncertain records visible.

What to carry forward

Triage ends with source and tenant identity, first routing boundary, affected records, and evidence gap. Keep ambiguous events out of side effects. Route subscription, lookup, and authorization questions separately for reconciliation review, and name a reviewer for reconciliation.

Technical background: GitHub documentation.

Keep the decision with the work.

Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.

Create an account See the product workflow