---
title: numbers.extension_taken
description: Another active SIP credential in this workspace already uses that extension.
summary: >-
  Returned when assigning an internal extension that another active credential
  in the same workspace already holds. Extensions are unique per workspace so a
  dialled number reaches exactly one device.
date: 2026-08-14T00:00:00.000Z
type: error
---


## Summary

`numbers.extension_taken` means another **active** SIP credential in this workspace already answers to that extension.

## Cause

An extension is unique across the workspace, not across the number. That is deliberate: the workspace is the namespace people dial within, so `1001` has to mean one device no matter which of your numbers each device was issued against. Two credentials sharing an extension would make a dialled number ambiguous, and there is no sensible way to pick between them.

Uniqueness is enforced by a database index rather than a check-then-write, so two requests claiming the same extension at the same moment cannot both succeed. One of them receives this error.

## Resolution

Pick a free extension, or free the one you want.

To see what is in use, list the credentials on each of your numbers — the response carries `extension` on every credential:

```bash
curl "https://api.sautikit.com/v1/numbers/{id}/sip-credentials" \
  -H "Authorization: Bearer $SAUTIKIT_API_KEY"
```

To move an extension between devices, clear it from the old one first by passing an empty string:

```bash
curl -X PATCH "https://api.sautikit.com/v1/numbers/{id}/sip-credentials/{old_cred_id}" \
  -H "Authorization: Bearer $SAUTIKIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"extension": ""}'
```

Revoking a credential also frees its extension, so a replaced handset's number can be reissued without any extra step.

## Related

- [`numbers.extension_invalid`](/developers/errors/numbers.extension_invalid) — the extension is not exactly four digits.
