---
title: "service_id_reserved"
url: https://services.dev/docs/reference/check/service_id_reserved
---
# service_id_reserved

URL: https://services.dev/docs/reference/check/service_id_reserved

> A Service's file name, or a portal's, takes a word services.dev's own routes use.

| Fix | Fails in | Exit |
|---|---|---|
| Rename the file, or the role. | `services/verify.ts` | 1 |

**Owned by** [Service()](https://services.dev/docs/service.md): the page that explains what this gate holds.

## What check says

```txt title="npx services.dev check"
  ✗ A Service's file name, or a portal's, takes a word services.dev's own routes use. Rename the file, or the role. verify is the platform's: services/verify.ts is POST /verify.
    https://services.dev/docs/reference/check/service_id_reserved
✗ 1 to fix
```

## The failing file

```ts title="services/verify.ts"
import { Service } from 'services.dev'

export default Service({
  name: 'Verify',
  input: { document: 'file' },
  output: { report: 'file' },
  price: 19,
})
```

## The fix

```diff title="git add -A && git diff --staged"
diff --git a/services/verify.ts b/services/verification.ts
similarity index 100%
rename from services/verify.ts
rename to services/verification.ts
```

```txt title="npx services.dev check"
✓ ready to sell · 1 Service · AI delivers it alone · it keeps at least 80% of every job
```

## Explained in

- [Service()](https://services.dev/docs/service.md)

## What an agent reads

```json title="npx services.dev check --json · the service_id_reserved failure"
{
  "code": "service_id_reserved",
  "reason": "A Service's file name, or a portal's, takes a word services.dev's own routes use.",
  "next": "Rename the file, or the role. verify is the platform's: services/verify.ts is POST /verify.",
  "doc_url": "https://services.dev/docs/reference/check/service_id_reserved"
}
```

<details>
<summary>The whole document check --json prints</summary>

```json title="npx services.dev check --json"
{
  "ai": {
    "cents_per_call": 42,
    "simulated": true
  },
  "mcp": {
    "tools": 13,
    "tokens": 4455,
    "sandbox": 9,
    "budget": 8000
  },
  "services": [
    {
      "path": "services/verify.ts",
      "lines": 4,
      "steps": "draft · ai → review · ai · adversarial",
      "ok": false,
      "price": "$19 per job, within 48 hours, charged on delivery.",
      "who": "AI delivers every job.",
      "agent": {
        "tool": "order_verify",
        "words": 21,
        "job": "job_7Hq2",
        "status": "accepted",
        "on": null,
        "charged": 1900,
        "person": false,
        "why": ""
      },
      "ledger": "+$19.00 · AI $0.84 (example) · you $18.16",
      "approved_ledger": null,
      "outcome": null,
      "margin": {
        "floor": {
          "cents": 1520,
          "pct": 80
        },
        "own": 1520,
        "stop": 380,
        "nested": []
      },
      "apps": [
        "customer portal",
        "owner console"
      ],
      "failures": [
        {
          "code": "service_id_reserved",
          "reason": "A Service's file name, or a portal's, takes a word services.dev's own routes use.",
          "next": "Rename the file, or the role. verify is the platform's: services/verify.ts is POST /verify.",
          "doc_url": "https://services.dev/docs/reference/check/service_id_reserved"
        }
      ]
    }
  ]
}
```

</details>

---

- Up: [check’s gates](https://services.dev/docs/reference/check.md)
- Previous: [surface_drift](https://services.dev/docs/reference/check/surface_drift.md)
- Next: [word_collision](https://services.dev/docs/reference/check/word_collision.md)
