# Problem code `'connections-outdated'`

> 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

Stored connections whose [`connectionsBasis`](../api/connectionsBasis.md) no longer matches their nodes: none restored.

## What to do

The nodes changed after the connections were saved, so none were restored: attach them again with [`session.assembly.attach`](../api/Assembly.attach.md), and when you save, store [`connectionsBasis(model, connections)`](../api/connectionsBasis.md) beside `connections`; for connections you build yourself, omit [`connectionsBasis`](../api/connectionsBasis.md).

```ts
const model = session.getSceneModel();
const connections = session.assembly.connections();
if (model) save({ connections, connectionsBasis: connectionsBasis(model, connections) });
```

## Where the declaration names it

- [`IConfigurator.connectionsBasis`](../api/IConfigurator.connectionsBasis.md): On restore, a mismatch means the placed nodes changed after the connections were stored (a v1 re-save keeps both fields unchanged): the runtime restores no connection, records 'connections-outdated', and the app re-assembles once, as for an old save.
- [`SceneModel.connectionsBasis`](../api/SceneModel.connectionsBasis.md): Only for connections restored from a save: when you pass connections you built (`[]` included), omit it, since a spread of a stored document carries its old basis and records 'connections-outdated'.
- [`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.

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

## Recorded by

- the table row `failure-matrix/cases/connections-outdated` (`tables/failure-matrix.json`)
- the table row `attach/rules/A8` (`tables/attach.json`)
