Troubleshooting
Isolate publishing, knowledge, embed, voice, connector, domain, billing, and API failures safely.
Isolate publishing, knowledge, embed, voice, connector, domain, billing, and API failures safely.
Start with a reproducible case#
Before changing settings, capture:
- The workspace/site, public route or API endpoint, and exact time with timezone.
- Expected result and actual result.
- Browser/device or external provider channel.
- Whether the failure affects the owner preview, hosted site, custom domain, embed, connector, and/or API.
- Safe status/error text, response
x-request-id, connector last error, or provider delivery event ID. - The last known working time and the smallest recent change.
Do not include plaintext API/provider/connector credentials, webhook secrets, private customer data, full authorization headers, or unnecessary conversation content.
Site changes do not appear#
- Confirm the dashboard URL belongs to the intended site and workspace.
- Confirm the save action reported success.
- Publish the current state again.
- Open the hosted slug in a private window.
- If the hosted slug is correct but a custom domain is not, inspect domain state/DNS/TLS rather than editing content again.
- If only a social preview is old, use that platform's cache/debugger.
Unpublishing and editing are different. A connected messaging connector may continue answering even when the hosted page is unpublished.
Agent answer is weak or wrong#
Ask the identical question in the owner tester and a new public conversation. Confirm the relevant knowledge source was indexed, contains an explicit answer, is current, and does not conflict with another source. Check language/persona rules for a boundary that prevents the answer.
When the source has no answer, improve the fallback/escalation behavior instead of instructing the agent to guess. Use Knowledge sources to create a direct/paraphrase/boundary acceptance set.
Embed launcher is missing or blocked#
Confirm the site is published, embedding is enabled, the script has the exact site slug, and the browser's final parent origin—including scheme, hostname, and port—is allowlisted. In DevTools, inspect the embed.js request, CSP errors, consent-manager state, iframe request, and presence of one data-maf-embed root.
If text works but microphone does not, check HTTPS, browser permission, iframe allow permission, and the host Permissions Policy. Follow the complete Embed overview and Security and CSP.
Voice does not work#
Separate the failing mode: voice message, live call, clone, or connector voice. A working text path proves only the language-model key.
Check transcription, TTS, real-time, and cloning provider keys independently; then check plan entitlement, credit balance, live-minute allowance, browser permission, configured languages, sample limits, and consent. Test a short clean recording before investigating a long/noisy file.
Connector receives no messages#
Use the channel guide and compare both sides. Confirm the connector is enabled, credentials still validate, provider webhook/interaction/skill URL is the current one, required event/Page/number/block is subscribed, app mode includes the test user, and public HTTPS delivery succeeds.
Webhook verification success does not prove runtime event subscription or outbound permissions. Compare provider delivery logs with Last message and the connector's saved error. Test text before voice.
Custom domain does not activate#
Read the status before changing DNS:
- Pending DNS: ownership TXT is missing or not propagated.
- Verified: ownership passed but the $2/month add-on is not active.
- Attaching: add every displayed apex/
wwwrecord and remove conflicts. - Error: use the saved provider message and retry action.
- Payment required/Suspended: repair the domain add-on or platform plan.
The hosted slug is the fallback diagnostic surface. If it also fails, the problem is not only DNS. See Custom domains.
API request fails#
Record method, versioned path, status, stable error code, response x-request-id, and relevant rate-limit headers. Then classify:
| Status | Most likely action |
|---|---|
400 | Fix JSON/form shape or validation details; do not retry unchanged |
401 | Use a valid unexpired/unrevoked MAF credential; never use a provider key |
403 | Add the required scope or restore plan/resource access |
404 | Confirm the ID belongs to the authenticated workspace and path is correct |
409 | Resolve state conflict or replay the same idempotency key/payload |
415 | Send the documented content type |
429 | Honor retry-after/reset headers with jitter; do not busy-loop |
500 | Retry a safe/idempotent request and preserve the request ID/time |
Use Credentials and tokens, Scopes and errors, and Rate limits. Never solve an API error by moving a server credential into browser code.
Billing or usage looks wrong#
Distinguish platform access, monthly credits, purchased credits, site count, live minutes, clone slots, API rate, and custom-domain add-on status. A top-up changes credits only. BYOK provider charges are separate from Make Agent Fast billing.
For unexpected usage, contain the likely source before investigating: disable a connector, revoke a key, remove an unintended embed origin, or stop an API retry loop. Preserve time range and request/provider IDs without exposing secrets.
Collect safe support details#
If still blocked, use the feedback control on the most relevant guide or contact support from the dashboard with:
- Site/workspace identifier and affected feature.
- Exact timestamp/timezone and reproducible steps.
- Expected vs actual result.
- Public non-secret URL when relevant.
- HTTP status, stable error code,
x-request-id, or provider event ID. - Redacted screenshot or minimal payload with secrets and personal data removed.
State what you already checked. This prevents repeated setup advice and makes the failure boundary clear.