# Problem code `'connection-stale'`

> Contract 2.0.0 · package sha256 `a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e` · generated from `configurator-runtime.d.ts`, `tables/problems.json` and `services/onsite-scripter/scripts/contract-docs-what-to-do.json` by `services/onsite-scripter/scripts/build-contract-docs.mjs`; edit the source, not this file.

A member of [`ProblemCode`](../api/ProblemCode.md) · stable · since 2.0.0

A connection's planes no longer meet (0.5 mm, 0.5°); it was dropped. `message` has the gap.

## What to do

The stored connection was dropped because its planes no longer meet (`message` has the gap): attach the node again with [`session.assembly.attach(node, { to })`](../api/Assembly.attach.md), or store positions whose planes meet within 0.5 mm and 0.5°.

```ts
await session.assembly.attach(shelfId, { to: { node: frameId }, undo: 'Reconnect' });
```

## Where the declaration names it

- [`Assembly.attach`](../api/Assembly.attach.md): In short: placement honours the stored plane config (`align`, `frontDir`, `allowRotatedSnap`) exactly as 1.4 `snapTo` did; it refuses only a disabled connector or one occupied by another pair (re-attaching a connected pair re-places `node`), an `accepts` mismatch where `accepts` is declared, or planes that don't meet; it never moves another node, and it drops `node`'s other connections that no…
- [`IConfigurator.connections`](../api/IConfigurator.connections.md): A connection whose planes no longer meet is dropped on restore ('connection-stale').
- [`SceneModel.connections`](../api/SceneModel.connections.md): Given: restored without a re-snap; one whose planes no longer meet is dropped ('connection-stale').
- [`Writer.setSceneModel`](../api/Writer.setSceneModel.md): Connections (spec section 6.12, A8): `model.connections` given are restored without a re-snap ('connection-stale' drops one whose planes no longer meet; a [`connectionsBasis`](../api/connectionsBasis.md) mismatch, 'connections-outdated', restores none); omitted keeps the current ones; `[]` clears them.
- [`testing.FakeModel.connectors`](../api/testing.FakeModel.connectors.md): The fake's `attach` is geometric: it applies the spec's section 6.12 over these and the node's plane config, so poses, refusals and 'connection-stale' match the runtime.

The set is open: handle a code you don't know (`'other'`).

## Recorded by

- the table row `targets/identity/ID4` (`tables/targets.json`)
- the table row `attach/rules/A5` (`tables/attach.json`)
- the table row `attach/rules/A6` (`tables/attach.json`)
- the table row `attach/rules/A8` (`tables/attach.json`)
- the table row `attach/rules/A9` (`tables/attach.json`)
- the table row `attach/rules/A10` (`tables/attach.json`)
