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.
Since around July 11,
GET /v1/dev/user/memoriesreturns 403 for my account:{ "detail": { "enabled": false, "reason": "missing_rollout_state", "consumer": "developer_api", "archive_default_visible": false, "archive_capability": false } }/v1/dev/user/conversationsand/v1/dev/user/action-itemsreturn 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 freshomi_dev_key in the app cleared that layer, but memories now fail at the rollout gate withmissing_rollout_stateas above. So a new key does not resolve it.Where it appears to come from:
backend/utils/memory/default_read_rollout.pyfails closed when the per-userusers/{uid}/memory_control/statedoc is missing, andbackend/utils/memory/product_authorization.pyroutes 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_apiconsumer given a legacy-safe fallback for un-migrated accounts?Happy to provide my user id / key id privately if useful for debugging.