{"version":"2.1.227","anchor":"rejected-background-dispatch-files-now-say-why","canonical_anchor":"rejected-background-dispatch-files-now-say-why","heading":"Rejected background dispatch files now say why","tier":"internal","area":"Daemon","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.227\/e\/rejected-background-dispatch-files-now-say-why","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.227","markdown":"### Rejected background dispatch files now say why\n\nThe background daemon now records why it refused a queued dispatch file.\n\n**What**\n\nThe background daemon records a specific reason when it refuses a queued dispatch file, so failures are distinguishable instead of silent.\n\n**Details**\n\n- Reasons: `bad_name`, `not_a_file`, `oversized`, `read_failed`, `stale`, `schema`, `bad_json`, `transform_throw`, `symlink`.\n- A shared helper logs `[bg-dispatch] rejected \u2026` and emits `tengu_bg_dispatch_rejected` with a truncated reason.\n- A newer storage path reads dispatches with a byte cap and deletes the entry once handed off.\n\n**Evidence**\n\n`daemon_bg_dispatch_ingest`\n\n- Area: Daemon\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5"}