# Problem code `'unknown-capability'`

> 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

[`supports()`](../api/Session.supports.md) got an id not in this runtime's [`KnownCapability`](../api/KnownCapability.md), once per id per session; `didYouMean` names a 1.4 id's 2.0 id (none when the member is always present), else close known ids.

## What to do

Pass a [`KnownCapability`](../api/KnownCapability.md) id to [`session.supports`](../api/Session.supports.md): for a 1.4 id, `didYouMean` names its 2.0 id, and when the `message` says the member is always present in 2.0, drop the guard; for any other id, `didYouMean` lists close known ids. For AR use 'activateAR' and the 'ar:modes' event.

```ts
session.on('ar:modes', ({ modes }) => { arButton.hidden = !session.supports('activateAR') || modes.length === 0; }, { signal });
```

## Where the declaration names it

- [`Capability`](../api/Capability.md): An id not in this runtime's [`KnownCapability`](../api/KnownCapability.md) answers false and records 'unknown-capability' once per id per session: a 1.4 id such as 'idle', and a newer contract's id, where it is information only.
- [`Session.supports`](../api/Session.supports.md): Unknown ids answer false; an id not in this runtime's [`KnownCapability`](../api/KnownCapability.md) (a 1.4 id such as 'idle', or one a later contract added) also records 'unknown-capability', once per id per session, with `didYouMean`.

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