Skip to content

Developer API: GET /v1/dev/user/memories returns 403 missing_rollout_state (conversations/action-items OK) #9892

Description

@stevecorey-pixel

Since around July 11, GET /v1/dev/user/memories returns 403 for my account:

{
  "detail": {
    "enabled": false,
    "reason": "missing_rollout_state",
    "consumer": "developer_api",
    "archive_default_visible": false,
    "archive_capability": false
  }
}

/v1/dev/user/conversations and /v1/dev/user/action-items return 200 with the same key, so this is specific to memories.

What I tried: My original API key (created in early June) initially failed with reason: "malformed_app_key_scope_grant". Creating a fresh omi_dev_ key in the app cleared that layer, but memories now fail at the rollout gate with missing_rollout_state as above. So a new key does not resolve it.

Where it appears to come from: backend/utils/memory/default_read_rollout.py fails closed when the per-user users/{uid}/memory_control/state doc is missing, and backend/utils/memory/product_authorization.py routes external consumers (developer_api) through that gate. Accounts not yet enrolled in the canonical-memory rollout therefore lose Developer API memory reads entirely (no legacy fallback like the first-party route has).

Impact: Breaks the memories feed of third-party integrations (e.g. the Obsidian omi-sync plugin) for accounts awaiting migration. Conversations and action items still sync fine.

Ask: Could my account be migrated/enrolled, or the developer_api consumer given a legacy-safe fallback for un-migrated accounts?

Happy to provide my user id / key id privately if useful for debugging.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions