Troubleshooting
Start from the symptom you see. Sailor returns machine-readable error strings so your backend can log the exact failure and choose the next action.
Pick the card that matches the failure mode, then work through the checks in that section.
Start Here
The API returned unauthorized, forbidden, or feature_disabled.
Create or update returned invalid_outcome or destination_not_found.
An action outcome was applied, but your endpoint did not receive a payload.
Agents are not seeing a required disposition step after calls.
Request Was Rejected
Outcome Did Not Save
Webhook Did Not Arrive
Check these in order:
Confirm the outcome is an action
Webhooks are sent for action outcomes with a configured webhook_url.
Confirm the URL is public HTTPS
Localhost and private network URLs cannot receive Sailor webhooks. Use a tunnel for local testing.
Post-Call Workflow Did Not Appear
disposition_popup_enabled is true only when at least one outcome has outcome_type: "disposition".
If agents do not see a post-call disposition step:
- Call
GET /phone-system/outcomes. - Confirm at least one returned outcome has
outcome_type: "disposition". - Confirm the agent is using the same workspace as the API token.
- Create a disposition outcome if none exists.
Smart List Movement Did Not Match Expectation
Still Stuck
Capture the method, path, request body, response body, and approximate time of the request. If the issue involves a webhook, include your receiver logs and the outcome ID.