> ## Documentation Index
> Fetch the complete documentation index at: https://www.seam.co/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Unmanaged Access Codes Errors and Warnings

> Errors and warnings that Seam reports on the Unmanaged Access Codes resource, each with its code and meaning.

## Errors

Each error is an object with the following shape:

```json Example error theme={"dark"}
{
  "error_code": "provider_issue",
  "message": "Indicates a provider-specific issue that prevents the access code from being set or managed. Check the error message for details.",
  "created_at": "2025-01-01T00:00:00.000Z",
  "is_access_code_error": true
}
```

<Accordion title="Error object properties">
  <ResponseField name="error_code" type="Enum (String)">
    Unique identifier of the type of error. Enables quick recognition and categorization of the issue.

    One of the error codes listed below.
  </ResponseField>

  <ResponseField name="message" type="String">
    Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
  </ResponseField>

  <ResponseField name="created_at" type="String (ISO 8601)">
    Date and time at which Seam created the error.
  </ResponseField>

  <ResponseField name="change_type" type="Enum (String)">
    Indicates the type of external modification. `modified` means the code's PIN or schedule was changed. `removed` means the code was deleted from the device.
  </ResponseField>

  <ResponseField name="is_access_code_error" type="Boolean (Always true)">
    Indicates that this is an access code error.
  </ResponseField>

  <ResponseField name="is_bridge_error" type="Boolean">
    Indicates whether the error is related to [Seam Bridge](/docs/capability-guides/seam-bridge).
  </ResponseField>

  <ResponseField name="is_connected_account_error" type="Boolean (Always true)">
    Indicates that the error is a [connected account](/docs/api/connected_accounts/object) error.
  </ResponseField>

  <ResponseField name="is_device_error" type="Boolean (Always false)">
    Indicates that the error is not a device error.
  </ResponseField>

  <ResponseField name="managed_access_code_id" type="String (UUID)">
    ID of the managed access code that conflicts with this managed access code, when Seam can identify it.
  </ResponseField>

  <ResponseField name="modified_fields" type="Array">
    List of fields that were changed externally, with their previous and new values.
  </ResponseField>

  <ResponseField name="unmanaged_access_code_id" type="String (UUID)">
    ID of the unmanaged access code that conflicts with this managed access code, when Seam can identify it.
  </ResponseField>
</Accordion>

### `access_code_inactive`

Indicates that the access code is disabled or inactive on the device. The code exists but will not grant access until re-enabled.

***

### `code_constraints_violated`

The code cannot be set on the device because it violates the device's code constraints (for example, its length, digits, or a too-simple value). The code will not be retried until you change it. See the device's `code_constraints` and `supported_code_lengths`.

***

### `conflicting_external_modification`

Code was modified or removed externally after Seam successfully set it on the device. The external change conflicts with the state that Seam is trying to apply, so Seam will attempt to set the code on the device again.

***

### `duplicate_code_on_device`

Duplicate access code detected on device.

***

### `failed_to_expire`

This access code is still active on the device even though its `ends_at` has passed, so the recipient may still be able to unlock the device after their access window ended. Seam is attempting to remove it, and this error clears automatically once the access code is no longer active.

***

### `failed_to_issue`

Seam was unable to issue this access code before its start time, so the recipient may be unable to unlock the device. This usually points to a problem that needs attention, such as an offline or disconnected device. Seam keeps retrying, and this error clears automatically if the access code is eventually issued.

***

### `failed_to_remove_from_device`

Failed to remove code from device.

***

### `failed_to_set_on_device`

Failed to set code on device.

***

### `failed_to_update`

Seam was unable to apply this access code's requested update to the device, so the code on the device does not match its requested state. Seam keeps retrying, and this error clears automatically once the update is applied.

***

### `no_space_for_access_code_on_device`

No space for access code on device.

***

### `provider_issue`

Indicates a provider-specific issue that prevents the access code from being set or managed. Check the error message for details.

***

### Connected Account

<Note>
  These errors are inherited from the [Connected Account](/docs/api/connected_accounts/errors) resource. When they are set on the parent connected account, they are propagated to this resource's errors list.
</Note>

#### `account_disconnected`

Indicates that the account is disconnected.

***

#### `bridge_disconnected`

Indicates that the Seam API cannot communicate with [Seam Bridge](/docs/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/docs/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected).

***

#### `dormakaba_sites_disconnected`

Indicates that one or more dormakaba sites associated with the connected account could not be connected. Contact dormakaba support.

***

#### `insufficient_permissions`

Indicates that Seam's integration user does not have sufficient permissions on the provider's system to which this device belongs, so Seam cannot manage access codes or unlock the device. See the error message for specifics, then either reauthorize the connected account in Seam or grant the integration user the required permissions in the provider's system.

***

#### `salto_ks_subscription_limit_exceeded`

Indicates that the Salto site user limit has been reached.

***

### Device

<Note>
  These errors are inherited from the [Device](/docs/api/devices/errors) resource. When they are set on the parent device, they are propagated to this resource's errors list.
</Note>

#### `august_lock_not_authorized`

Indicates that the user is not authorized to use the August lock.

***

#### `device_disconnected`

Indicates that the device is disconnected.

***

#### `device_offline`

Indicates that the device is offline.

***

#### `device_removed`

Indicates that the device has been removed.

***

#### `hub_disconnected`

Indicates that the hub is disconnected.

***

#### `missing_device_credentials`

Indicates that device credentials are missing.

***

#### `subscription_required`

Indicates that a subscription is required to connect.

***

## Warnings

Each warning is an object with the following shape:

```json Example warning theme={"dark"}
{
  "warning_code": "code_rotates_periodically",
  "message": "The access code's PIN rotates periodically when the code is renewed. Retrieve the latest code before each use.",
  "created_at": "2025-01-01T00:00:00.000Z"
}
```

<Accordion title="Warning object properties">
  <ResponseField name="warning_code" type="Enum (String)">
    Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.

    One of the warning codes listed below.
  </ResponseField>

  <ResponseField name="message" type="String">
    Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
  </ResponseField>

  <ResponseField name="created_at" type="String (ISO 8601)">
    Date and time at which Seam created the warning.
  </ResponseField>

  <ResponseField name="change_type" type="Enum (String)">
    Indicates the type of external modification. `modified` means the code's PIN or schedule was changed. `removed` means the code was deleted from the device.
  </ResponseField>

  <ResponseField name="modified_fields" type="Array">
    List of fields that were changed externally, with their previous and new values.
  </ResponseField>
</Accordion>

### `being_deleted`

Access code is being deleted.

***

### `code_rotates_periodically`

The access code's PIN rotates periodically when the code is renewed. Retrieve the latest code before each use.

***

### `delay_in_issuing`

Seam has not yet issued this access code, even though its start time is approaching, so access may not be ready when the recipient arrives. Seam is still attempting to issue it, and this warning clears automatically once issuance succeeds.

***

### `delay_in_removing_from_device`

Delay in removing code from device.

***

### `delay_in_setting_on_device`

Delay in setting code on device.

***

### `external_modification_in_effect`

Code was modified or removed externally after Seam successfully set it on the device. External modification is allowed for this code, so the externally modified state is being honored.

***

### `igloo_algopin_must_be_used_within_24_hours`

Algopins must be used within 24 hours.

***

### `management_transferred`

Management was transferred to another workspace.

***

### `third_party_integration_detected`

Third-party integration detected that may cause access codes to fail.

***

### `time_frame_adjusted_for_unknown_time_zone`

The device's time zone is unknown and this code's time frame crosses a daylight-saving transition in at least one plausible time zone. A 1-hour safety buffer has been applied to the side of the time frame affected by the transition (`ends_at` for spring-forward, `starts_at` for fall-back) so the code stays active through the shift — the code may be usable up to 1 hour beyond your requested window. Set the device's time zone via `/devices/report_provider_metadata` to clear the buffer and guarantee exact handling.

***

### `unknown_issue_with_access_code`

An unknown issue occurred with the access code.

***

### `using_backup_access_code`

A backup access code has been pulled and is being used in place of this access code.

***
