## TL;DR

You need read access to the referenced record to use it in a lookup. Ask the admin for sharing access, or pick a record you can see.

## Error

```text
TRANSFER_REQUIRES_READ: insufficient access rights on cross reference id
```

## Steps

1. Confirm you cannot see the referenced record Expected: sharing is the issue.
2. Ask the admin for read access via sharing rules Expected: you can see it.
3. Or choose a reference you already have access to Expected: the operation is valid.
4. Re-run the operation Expected: it succeeds.

## When to use

- TRANSFER_REQUIRES_READ
- You reference a record you cannot read

## When not to use

- You can see the record (then check field-level security)
- The reference is to a deleted record (then it is ENTITY_IS_DELETED)

## Tool compatibility

- Salesforce sharing and visibility
- Record ownership

## Variant phrasings

### transfer_requires_read

You need read access to the referenced record.

### insufficient access rights on cross reference id

Same: sharing rules.

## Why it happens

Agents run as integration users with narrow visibility. The record exists, but not for them.

## Edge cases

- Owner-based sharing vs criteria-based sharing: know which applies
- The running user in flows can differ from the API user

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_zR5pObA-93WMt6rxNQiSaw
