# No case was opened

No case exists because nobody opened one. Connect does not create a case from a message sounding unhappy — opening is an explicit action by a person, by the Assistant when asked, or by a workspace route. The conversation, the person and the reply are all intact; what is missing is the record that makes the problem countable and chaseable.

- **Status:** Available
- **Audience:** both
- **In the app:** #/relationships, #/conversations, #/data
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/troubleshooting/case-not-created/

## What the symptom looks like

The customer wrote about a problem. There is a conversation, possibly a reply, and the person's relationship record shows the exchange — but the open-cases list does not show them, a report of cases this month does not count them, and nothing is chasing the problem as a case.

This is a gap in tracking rather than a gap in service. The problem may well be being handled competently in a thread. What it is not is visible to anything that reads cases, which is why it disappears the moment the person handling it is on leave.

## Why opening is deliberate

Tone is not an instruction. A case is a commitment: it appears in lists, it is counted, it is read back later as a record of what the business owed somebody. A queue populated by inference from irritated wording would make every one of those uses less trustworthy, and the first person to close forty invented cases learns to stop reading the queue.

So there are three doors and all of them are somebody choosing: a person on the relationship record, the Assistant through `create_case` when told to, and a workspace route calling `open_case` directly. Each produces the same record; none of them is triggered by sentiment.

## The likely causes, in order

1. **Nobody opened one.** The overwhelmingly common cause, and the one-step fix.
2. **The instruction to the Assistant was not an instruction.** Describing a problem in conversation is not asking for a case; `create_case` runs when you ask for one.
3. **It was opened against a different person.** If the customer wrote from an unrecognised address, a second record may hold the case while you are reading the first.
4. **You are filtering on open.** A case opened and resolved quickly is not in the open list. Check resolved before concluding nothing exists.
5. **You are in the wrong workspace.** Records belong to exactly one workspace; an operator session and a customer session see different sets by design.

## What Connect did complete

- The message was ingested and canonicalised onto its thread, so the conversation is whole.
- The sender was resolved to a Person, or a Person was created rather than the message being left ownerless.
- Any reply was grounded in the relationship's own history and evidenced by the provider if it went out.
- The exchange is on the person's timeline in the order the customer experienced it.

## What Connect did not complete

- No case record exists, so the problem is absent from the `cases` sheet, every case list and every count.
- Nothing is tracking the problem to a resolution, and no outcome will be written when it ends.
- The problem contributes nothing to the context of the next case — a recurring fault will not read as recurring.
- No case-level escalation happened; anything held or refused was held against the conversation, not against a case.

## What you can do

1. Open the case now, against the person, stating the problem in the workspace's own words.
   - Result: Nothing is lost by opening it late: a case reads the relationship when it is worked rather than copying it at creation, so it immediately sees the whole conversation that preceded it.
2. Before you do, check the person for a duplicate record.
   - Result: Opening a second case on a second record for the same human doubles the problem you are trying to fix. Merge first if there are two.
3. If this keeps happening on one channel, decide who opens cases there and write it down as a standing instruction.
   - Result: The habit becomes part of how the workspace runs rather than something that depends on who read the message.

## Administrators, and when to escalate

An administrator can review whether the people working a channel know that cases are explicit, and can use the `cases` sheet in the Data grid to find the opposite problem — cases opened and never resolved, which is the same tracking failure facing the other way.

Escalate when a case was demonstrably opened and does not appear on the person or in the sheet, when `create_case` was asked for plainly and nothing was created, or when a case appears on one screen and not another. Those are the shapes that are not explained by nobody having opened one, and each is worth a proper look.

## Questions

### Should Connect open a case when a customer sounds angry?

No, and it does not. A case is a counted, chased, permanently readable commitment, and creating one from tone would fill the queue with records nobody asked for. Opening stays an action somebody takes.

### Is it too late to open a case days after the problem started?

No. The case reads the relationship when it is worked, so it sees the whole conversation that preceded it. The only thing lost by opening late is the days it was not being tracked.

### Can the Assistant open one for me?

Yes, `create_case` is one of its product tools. Ask for a case explicitly — describing a problem in conversation is not the same as asking for the record.

## Related

- [Support cases](https://connectbyjbrh.com/docs/support/cases/)
- [What a case carries](https://connectbyjbrh.com/docs/support/case-context/)
- [A support case, end to end](https://connectbyjbrh.com/docs/workflows/support-case/)
- [Duplicate detection](https://connectbyjbrh.com/docs/relationships/duplicates/)
- [Connect Assistant](https://connectbyjbrh.com/docs/assistant/)
- [Files and data in Connect](https://connectbyjbrh.com/docs/files-data/)

## What this page is based on

- `docs-source/sources/CHANNELS.md` §5 — `open_case`, `act_on_case` and the relationship console
- `docs-source/sources/GENERAL.md` §8 — the Assistant's `create_case` and `list_cases`
- `docs-source/sources/GENERAL.md` §9 — the `cases` sheet in the Data grid
- Connect capability registry (docs-source/facts.py) — `support_cases`, `duplicate_merge`
