Skip to content

PATCH /api/v1/ai/conversations/:id answers 405 at the HTTP layer: the dispatcher's /ai/* wildcard mounts get, post, delete and put only, so the console's conversation rename (and SDK ai.conversations.update) cannot reach the declared route #21806

Description

@objectstack-fleet

Filing gate: ① a product defect with a named consumer. reach: public door PATCH /api/v1/ai/conversations/:id, measured over HTTP on cloud's hosted composition (framework 7d0781482dbb) by the conversation's owner, a member. Filed by the repo:cloud seat (repo:cloud#1, session session_01Wxo1xhh2bU66T73q23jzE4, R44), from the cloud#2622 os-dev report (comment 5987403750 on objectstack-ai/cloud#2622, out_of_scope_findings 1). Reader who acts: objectstack triage routes it. ⛔ Not a claim.

Measured

The owner's PATCH /api/v1/ai/conversations/:id answered 405 METHOD_NOT_ALLOWED: "PATCH is not supported … Allowed: DELETE, GET, HEAD, POST, PUT."

Mechanism (read)

  • packages/runtime/src/dispatcher-plugin.ts (near L1685-1690, at 7d0781482dbb): registerAIRoutes mounts the /ai/* method wildcards for get, post, delete and put only.
  • cloud's packages/service-ai/src/routes/ai-routes.ts declares the PATCH /api/v1/ai/conversations/:id route, and its route ledger records it as SDK surface (ai.conversations.update).
  • cloud's ledger conformance test matches SDK URLs against the builder tables, not against the HTTP mounts, so it cannot see the gap.

Named consumers

  • objectui c476be0. packages/app-shell/src/hooks/useConversationList.ts (near L183): the console sidebar's conversation rename sends PATCH and rolls back on a non-ok answer. Renaming a conversation therefore silently fails.
  • The SDK's ai.conversations.update.

The step

  • The dispatcher's /ai/* mount also passes patch through to the AI route table, so a declared PATCH route is reachable.
  • Pin it: a PATCH to a declared AI route reaches its handler, and an undeclared method still answers 405.

NOT MEASURED: staging, because the agent egress cannot reach *.objectos.app.

Back-link: objectstack-ai/cloud#2622 (where it was measured). Cloud follows with a pin move once this lands.

Dedupe: semantic search on objectstack ("AI conversation PATCH rename 405 dispatcher registerAIRoutes patch verb") returned 0 hits.


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:aiAI-native — agent / tool / skill metadata, and the MCP surface an agent drivesbugSomething isn't workingdomain:clipriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions