Access and sign-in
| Symptom | Usual cause | Fix |
|---|
| Signed up and immediately thrown back out of every module | An account with no organisation membership. | Add the membership. See [Organisations](/docs/platform/organisations#switching). |
| A magic link says it has expired on the first click | A mail gateway fetched and consumed it. | Use a password or Google on that domain. |
| Someone never receives any email from us | An account-wide unsubscribe suppression. | Mail [email protected] with the address to clear it. |
| A module is missing from somebody's rail | Entitlement, or a module access rule. | Check both. Access removes; entitlement grants. |
| A leaver can still open a module | Membership removed, sessions not revoked. | Do both. See [Security](/docs/platform/security#sessions). |
| An authentication error immediately after sign-in | The token reached a path that module reads differently. | Report it with the URL — it is a fault, not configuration. |
Data that is not where you expect
| Symptom | Usual cause | Fix |
|---|
| A module is enabled and completely empty | Nobody has opened it yet, so it has not mirrored your organisation. | Open it once. |
| Leads never arrive from our form | The module path was appended to the ingest URL. | Use the URL exactly as issued. See [Webhooks](/docs/api/webhooks#ingest). |
| Leads arrive but nobody sees them | Missing source identifier → the fallback workspace. | Send the identifier; check the fallback workspace. |
| A chat conversation produced no person | The agent never completed a capture. | Read the transcript. See [People](/docs/modules/phony/people#vanish). |
| A queued callback never dialled | Consent re-check at dial time failed, or quiet hours. | Correct behaviour, not a fault. |
| A client sees another brand's name | The client has no brand assigned. | Assign one. See [Clients and brands](/docs/modules/portal/clients-and-brands#wrongbrand). |
Numbers that look wrong
| Symptom | Usual cause | Fix |
|---|
| Revenue slightly low, tax slightly high | Tax-inclusive pricing read as exclusive. | Check the store setting. See [Commerce](/docs/modules/accounting/commerce#shopify). |
| A clearing account will not clear | A settlement component not recorded — often facilitator tax as a fee. | That is the account doing its job. Find the missing line. |
| Revenue and costs both inflated | A transfer between your own accounts categorised as income and expense. | Categorise transfers as transfers. |
| The bank balance does not match the statement | A feed missing or duplicating transactions. | Reconcile to the statement, never to the feed. |
| Consolidated revenue looks too high | Inter-company trade is not eliminated. | Adjust manually. See [Financials](/docs/modules/cfo/financials#consolidation). |
| A departmental report totals less than the company | Postings made without that dimension. | Completeness, not a reporting fault. |
| A metric shows no value at all | No data source — "not connected". | Deliberate. A guess would be worse. |
Agents behaving oddly
| Symptom | Usual cause | Fix |
|---|
| The agent cannot say what our company does | An empty or stale brief, not a failed crawl. | Recompile the brief. See [Agents](/docs/modules/phony/agents#brief). |
| The agent knows only part of our site | The crawl hit the page cap, or there is no sitemap. | Check the page count against reality. |
| Almost nothing was ingested from a large site | A sitemap index that was not descended into. | Point at a child sitemap. |
| The agent answers with another brand's facts | Knowledge scoping. | Scope each source to its own agent. |
| The agent ignored one of its rules | A prompt variable with no value deleted the whole line. | Check every variable has a value. See [Agents](/docs/modules/phony/agents#variables). |
| The agent offered something it cannot do | Same cause as above. | Same fix. |
Things that look broken and are not
- The chat widget does not appear after deploying the tag. A CDN cache is serving the old HTML. Purge it before investigating anything else.
- A module link took you to the shell home page. That is a real fault — a generated link dropped its mount. Report it with the URL.
- The signing URL says "sign" twice. Correct. The module mount and its own route compose.
- The rail gained or lost modules when you switched organisation. Correct. Entitlement is per organisation.
- A report is slow on a large ledger. Reports compute from posted entries at the moment you run them; there is no cache that could disagree with the ledger.
Reporting something
Mail [email protected]. Include four things and it will be diagnosed far faster: the URL you were on, what you expected, what happened, and which channel if it involves Phony — the phone agent and the web chat agent run on completely different machinery and a fix to one is not a fix to the other.
One report is treated as urgent above all othersIf you ever see data belonging to a company that is not yours, stop and mail [email protected] immediately. Suspected cross-tenant exposure is looked at straight away rather than triaged.