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

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

> A reserved row reads where from a party's region, and the Service takes no input that names it, so an order could never say where the act happens.

| Fix | Fails in | Suggests | Exit |
|---|---|---|---|
| Add the input the row reads, such as client_region: 'jurisdiction: such as US-CA', or set the role's where. | `rules.ts:7` · `rules.services['translation'].sign` | `input.client_region: 'jurisdiction: such as US-CA'` | 1 |

**Owned by** [Where an act happens](https://services.dev/docs/people/where.md): the page that explains what this gate holds.

## What check says

```txt title="npx services.dev check"
  ✗ An agent couldn't order, wait for and accept a job. Run npx services.dev dev and read its job. It stopped at: sign needs the region of the client: A sworn translator signs a translation filed with a registry. Send client_region, an ISO 3166 code such as US-CA.
    https://services.dev/docs/reference/check/agent_cannot_buy
  ✗ A reserved row reads where from a party's region, and the Service takes no input that names it, so an order could never say where the act happens. Add the input the row reads, such as client_region: 'jurisdiction: such as US-CA', or set the role's where. The sign row reads where: 'client', and translation takes no client or client_region input, so no order could say where it happens.
    at rules.ts:7 · rules.services['translation'].sign
✗ 2 to fix
```

## Often arrives with

The same file failed [`agent_cannot_buy`](https://services.dev/docs/reference/check/agent_cannot_buy.md) in the same run. Each has its own page.

## The failing file

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

export default Service({
  name: 'Translation',
  input: { document: 'file', to: 'language: a BCP 47 tag, such as fr-CA' },
  output: { document: 'file' },
  rules,
  roles: { translator: { credential: 'sworn translator' } },
  deliver: {
    translate: 'ai',
    harden: { review: 'adversarial', lenses: ['meaning', 'terms'] },
    sign: { by: 'translator', stamp: true },
  },
  price: 89,
})
```

## The fix

```diff title="git add -A && git diff --staged"
diff --git a/services/translation.ts b/services/translation.ts
index d9dc9a6..36ed668 100644
--- a/services/translation.ts
+++ b/services/translation.ts
@@ -3,7 +3,7 @@ import rules from '../rules.ts'
 
 export default Service({
   name: 'Translation',
-  input: { document: 'file', to: 'language: a BCP 47 tag, such as fr-CA' },
+  input: { document: 'file', to: 'language: a BCP 47 tag, such as fr-CA', client_region: 'jurisdiction: such as US-CA' },
   output: { document: 'file' },
   rules,
   roles: { translator: { credential: 'sworn translator' } },
```

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

## The rest of the brand

```ts title="rules.ts"
import { Rules } from 'services.dev'

export default Rules({
  version: '2026-10',
  services: {
    translation: {
      sign: { reserved: 'sworn translator', where: 'client', position: 'A sworn translator signs a translation filed with a registry.' },
    },
  },
})
```

## In the legal example

How the legal example passes this gate, in lines read from its files.

```ts title="examples/legal/rules.ts"
'contract-review': {
  advise: { reserved: 'bar admission', where: 'client', regions: ['US-CA', 'US-NY', 'US-TX'], kind: 'advice', rail: 'member', position: 'Advice on a contract is legal advice in the client\'s state.' },
```

```ts title="examples/legal/services/contract-review.ts"
input: { contract: 'file', client: 'party', client_region: 'jurisdiction: such as US-CA', goals: 'text?' },
```

Read them in context: [The rules table](https://services.dev/docs/examples/legal/rules.md), [Contract review](https://services.dev/docs/examples/legal/contract-review.md).

## Explained in

- [Where an act happens](https://services.dev/docs/people/where.md)

## What an agent reads

```json title="npx services.dev check --json · the where_unresolved failure"
{
  "code": "where_unresolved",
  "reason": "A reserved row reads where from a party's region, and the Service takes no input that names it, so an order could never say where the act happens.",
  "next": "Add the input the row reads, such as client_region: 'jurisdiction: such as US-CA', or set the role's where. The sign row reads where: 'client', and translation takes no client or client_region input, so no order could say where it happens.",
  "doc_url": "https://services.dev/docs/reference/check/where_unresolved",
  "file": "rules.ts",
  "line": 7,
  "path": "rules.services['translation'].sign",
  "suggest": {
    "path": "input.client_region",
    "value": "'jurisdiction: such as US-CA'"
  }
}
```

<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": 4490,
    "sandbox": 9,
    "budget": 8000
  },
  "files": [
    {
      "path": "rules.ts",
      "lines": 6,
      "kind": "rules",
      "says": "rules 2026-10 · 1 Service · 1 row"
    }
  ],
  "services": [
    {
      "path": "services/translation.ts",
      "lines": 11,
      "steps": "translate · ai → harden · ai · adversarial · 2 lenses → sign · translator · client · stamped",
      "ok": false,
      "price": "$89 per job, within 48 hours, charged on delivery.",
      "who": "A translator admitted where the client is signs every document before delivery. (rules 2026-10)",
      "roles": [
        "translator · sworn translator · your staff"
      ],
      "rules": "2026-10",
      "boundary": {
        "full": [
          "reserved sign to sworn translator where the client is"
        ]
      },
      "agent": {
        "tool": "order_translation",
        "words": 26,
        "job": null,
        "status": null,
        "on": null,
        "charged": null,
        "person": false,
        "why": "sign needs the region of the client: A sworn translator signs a translation filed with a registry. Send client_region, an ISO 3166 code such as US-CA."
      },
      "ledger": "+$89.00 · AI $1.26 (example) · you $87.74",
      "approved_ledger": null,
      "outcome": null,
      "margin": {
        "floor": {
          "cents": 7120,
          "pct": 80
        },
        "own": 7120,
        "stop": 1780,
        "nested": []
      },
      "apps": [
        "customer portal",
        "delivery portal",
        "owner console"
      ],
      "failures": [
        {
          "code": "agent_cannot_buy",
          "reason": "An agent couldn't order, wait for and accept a job.",
          "next": "Run npx services.dev dev and read its job. It stopped at: sign needs the region of the client: A sworn translator signs a translation filed with a registry. Send client_region, an ISO 3166 code such as US-CA.",
          "doc_url": "https://services.dev/docs/reference/check/agent_cannot_buy"
        },
        {
          "code": "where_unresolved",
          "reason": "A reserved row reads where from a party's region, and the Service takes no input that names it, so an order could never say where the act happens.",
          "next": "Add the input the row reads, such as client_region: 'jurisdiction: such as US-CA', or set the role's where. The sign row reads where: 'client', and translation takes no client or client_region input, so no order could say where it happens.",
          "doc_url": "https://services.dev/docs/reference/check/where_unresolved",
          "file": "rules.ts",
          "line": 7,
          "path": "rules.services['translation'].sign",
          "suggest": {
            "path": "input.client_region",
            "value": "'jurisdiction: such as US-CA'"
          }
        }
      ]
    }
  ]
}
```

</details>

---

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