BDS0.1

Troubleshooting

Recover failed collection without creating another response for the same occurrence.

Reviewed 2026-10-28Markdown

Locate the failure

Symptom Inspect Next action
No request arrives Schedule status, cadence due day, identity and cache, then Communication Message for that person Correct the first failed dependency; a rerun sends to everyone due
Message is Failed with invalid_arguments The person’s Slack account: the real cause is usually user_not_found when opening the DM Fix the identity binding or Tool Account; failed rows are not retried
Person asked twice for one KPI Two memberships, a second run that day, or the legacy Operations base Check Message rows for that day; the legacy base is outside this system
Fewer items than expected More than 25 items due for that person Items beyond 25 are counted, not sent
expired_trigger_id or retry notice Cache readiness and age before modal opening Refresh credentials if needed and click again for a new trigger
Form opens but context fails Schedule, target metric and membership Correct context; close and reopen
Numeric validation fails Whole number, non-negative value, configured decimal policy Enter a valid value for the supported input
Evidence fails File ID, access, extension, size and existing attachments Recover the same Observation
Processing persists Observation Date and execution stage Inspect after the short in-flight guard; do not assume no save occurred
Duplicate collection keys Rows sharing Submission Key Reconcile values and evidence before retrying; do not delete blindly
Value saved but checkbox wrong Recorded state and Slack update result Repair message synchronization after checking persisted data

Diagnostic boundaries

Record workflow, stage, timestamp, count and error code. Do not copy tokens, raw Slack payloads, private response URLs or evidence contents into logs. Execution payload saving is disabled, so an empty execution history is not proof the workflow never ran. Use Airtable state and Communication Message together. A dry-run- External Message Id means nothing was sent. Keep a failed row until its value and attachments have been reconciled.

What remains untested

A simultaneous duplicate submission, an upstream outage, a revoked token and a partial multi-file upload have not been reproduced. The handling above follows the workflow logic; test it in a controlled run before relying on it.