Skip to content

VB-OS Flow Failure Behavior

Webhook action dispatches support configurable retry behavior:

  • max_attempts: number of delivery attempts (1–5)
  • backoff_seconds: delay between retries (1–60 seconds)

If all attempts fail, the dispatch is marked FAILED and the execution status reflects the failure.

When a connector evidence mapping uses categorical_map and the source value does not match any key in the mapping, the gather fails closed:

  • No evidence is produced for that field
  • If auto-evaluate is enabled, the evaluation receives incomplete evidence
  • Missing required evidence produces DEFER at Stage 1 (admissibility)

This prevents unmapped values from silently passing through the evaluation pipeline.

Evidence acquisition can be rejected before evaluation:

  • Scope resolution failure: a scoped connector cannot resolve its subject, producing zero evidence
  • Acquisition class policy: if the effective acquisition class is not in the connector’s allowed_acquisition_classes, the gather is rejected

If the platform restarts while dispatches are in progress, orphaned dispatches (in PENDING state) are reconciled on startup. The reconciliation process checks each orphaned dispatch against its max_attempts limit: if the dispatch has exhausted all attempts, it is marked FAILED; otherwise it remains eligible for retry. When all dispatches for an execution reach a terminal state (SUCCEEDED or FAILED), the execution status is updated accordingly. Retry with backoff is primarily applied during this orphaned dispatch reconciliation.

Multiple safeguards prevent duplicate processing:

Level Mechanism
Execution Unique constraint on (deployment_id, evaluation_id)
Dispatch Idempotency key {execution_id}:{node_id}
Webhook Delivery includes idempotency metadata for receiver-side dedup

Flow validation requires at least one defer_action node. This enforces fail-closed design: every evaluation that produces DEFER is handled explicitly, never silently dropped.