Troubleshooting
Organised by the pill or message you see, not by the part of the product that produced it.
Each entry starts with what the screen says.
broken, with a 401
The token was revoked, or the private app is missing a scope. The error beside the pill names the request that failed. Make sure the private app has all six scopes listed in Connect HubSpot, then Settings → Connections → Rotate with a fresh token and press Collect.
edges partial
Some writes could not be resolved to a field. Two causes, both normal:
- Association-scoped writes: a workflow sets a property on an associated record (the contact's company, say) through an association type the API does not name. The collector lists these as gaps rather than guessing the object.
- Fetched-object tokens: an action writes to an object it looked up at run time. Where it lands is only knowable by running it.
The named gaps are shown on the coverage pill and count against absence claims about exactly those fields, and nothing else.
no such property on contact
The stages collector was asked about a field that does not exist as a property: usually one of the platform's dotted pseudo-properties used in list filters. Remove it from the funnel fields in Settings → Ontology.
n not drawn at this level
In the structure's lit banner: the walk asked for items the structure does not draw at the current level. An uncontested field is in the graph and not drawn, so lighting it lights nothing. It is a fact about the selection, not a missing item.
never collected
A system the config declares has never had a collect land. Press Collect on the overview, and read the run's log if it fails. Until it lands, the coverage gate refuses every absence claim that would depend on that system.
A run stuck on running
The process that ran it died before writing the finish, usually a laptop closed mid-collect. The next tick's collect supersedes it; the row stays as a record of the attempt.
config.yaml is hand-maintained
The workspace's config was written by hand rather than by the shell, so the shell shows it and will not rewrite it: a YAML round-trip would strip the comments. Edit the file. A config the shell wrote begins with a marker line and is editable in Settings.
The local shell keeps 1 workspace, or connects 1 CRM
The local edition is the whole product for one person on one machine: one workspace, one CRM plus one other system, no background worker. Hosted plans lift this.
Scheduled collects without the app open are a hosted feature
tanglemap worker is the hosted collector. The local shell collects on its schedule while it is running; leave the app open, or press Collect when you return.
A field with no ordering
The trajectory says so instead of drawing an empty track. Run the stages collector for the CRM, and check that the field is an enumeration in the CRM rather than free text two automations happen to compare.