For team admins
If something is broken for a single user, send them to Troubleshooting → For users first; the trees here are for tenant-wide or admin-only symptoms.
Flows and publishing
| Symptom | Likely cause | What to check |
|---|---|---|
| Publish disabled across the team | Tenant lacks an active subscription or seats | Verify in Subscription. If billing UI is missing, the billingEnabled flag is off on the platform. |
| Publish succeeds but calls still hit the old version | Caller dialled a different endpoint | Confirm the endpoint binding via the Flow Designer's Endpoint inspector (Endpoints). |
| Publish fails with endpoint already in use | Another published flow holds that endpoint | Archive or unpublish the previous flow first. See Draft and publish. |
| A node type the team needs is missing from the palette | Feature flag controls it, or the platform is older | Cross-reference Feature flags. Older platforms won't have nodes introduced after their release. |
| The AI Flow Builder panel doesn't show up for anyone in the team | aiFlowBuilder feature flag is off | Ask your platform admin to flip the flag. See AI Flow Builder. |
Tools and variables
| Symptom | Likely cause | What to check |
|---|---|---|
| Tool consistently returns an error | Endpoint URL, auth, or schema drift | Open the tool in the Tool inspector. Replay against the live URL outside Delphi (curl, Postman) with the same payload. |
| Tool occasionally times out | Slow upstream | Lengthen the tool timeout or move the slow work into a background webhook. Look for spikes in the upstream service. |
Variable substitution leaks the literal {{name}} | Variable name typo or scope mismatch | Check the Variable catalogue. Flow-level vs team-level scopes resolve differently. |
| Variable value is stale | Caching at the source | Refresh the value at the source. Variables in Delphi are read at flow-eval time, not pinned at publish time. |
API keys and SDK auth
| Symptom | Likely cause | What to check |
|---|---|---|
| 401 Unauthorized from TelAPI | Wrong key, wrong environment, or rotated key | Confirm in API keys. Keys are environment-scoped. The API authentication page lists the header format. |
| 403 Forbidden with a key that worked yesterday | Scope changed or member role changed | Re-issue the key with the required scopes; verify member role. |
SDK fails with network error in browser console | CORS, mixed-content, or wrong API base URL | Confirm the SDK is pointed at your TelAPI base URL. See the SDK quick start. |
429 from TelAPI | Rate limit exceeded | Back off and retry. Persistent 429s mean you should ask your platform operator to review your tenant's limits. |
Members, roles, and invites
| Symptom | Likely cause | What to check |
|---|---|---|
| Invite never arrived | Email delivery on the platform | Resend. If multiple invites fail, escalate to the platform operator to verify email outbound — see Web operations. |
| Member can't see an app | Role too low or app not shared | Confirm role and app visibility. See Access roles. |
| Member sees Team settings they shouldn't | Role too high | Demote in Team settings → Members. Roles documented in Access roles. |
| Can't remove the last admin | Tenant must keep at least one admin | Promote a different member to admin first, then demote. |
Billing
| Symptom | Likely cause | What to check |
|---|---|---|
| Billing tab is missing | billingEnabled feature flag is off | Ask your platform admin. See Subscription and Feature flags. |
| Checkout opens then fails immediately | Stripe environment mismatch | Operator: verify Stripe keys in vars.yaml / SM. Tenant admin: file a ticket with the failed Stripe session ID (visible in the URL). |
| Subscription active but features still gated | Activation not yet propagated | Wait ~1 minute and refresh; subscription state propagates asynchronously. Persistent gating after a refresh is a real bug — file a ticket. |
| Invoice missing line items | Usage roll-up still in progress | Usage rolls up at end-of-period. Mid-period invoices show only fixed components. |
Provider / endpoint configuration
| Symptom | Likely cause | What to check |
|---|---|---|
| Provider inspector won't save | Credentials invalid | The inspector validates against the upstream on save. See Providers. |
| SIP endpoint not receiving calls | Trunk or DID not actually pointed at us | This is usually upstream of Delphi. Confirm with the carrier. Operator-side checks live in TelPro operations and SIP trunks. |
| WebRTC endpoint works in test but not in production | WEBRTC_ENABLED not on the production endpoint, or origin mismatch | Operator: verify endpoint config. Tenant: confirm the embedded page is served from an allowed origin. |