Visitar URL original
HTTP: POST /api/v1/begin with a body that is not valid JSON answers 204 at the default isolation (an invalid isolationLevel gets 400 since #10318) · Issue #10337 · ArcadeData/arcadedb · GitHub
Skip to content

HTTP: POST /api/v1/begin with a body that is not valid JSON answers 204 at the default isolation (an invalid isolationLevel gets 400 since #10318) #10337

Closed

Description

@tae898

POST /api/v1/begin/{database} with a body that is not valid JSON opens the transaction at the default isolation and answers 204, while every invalid isolationLevel value gets a 400 since #10318. A client that meant to ask for REPEATABLE_READ and sent a truncated or garbled body gets read committed with a success status; the only trace is a server-side warning: Error parsing request payload: Invalid JSON object format: {"isolationLevel":.

Main 6d7e4400a3, server in-process, one session reads a record (v = 1), a second request commits v = 99, the session reads it again:

body (Content-Type: application/json) status second read
{"isolationLevel":"REPEATABLE_READ"} 204 stays 1 (repeatable)
{"isolationLevel":"SERIALIZABLE"} 400 no session
{"isolationLevel":""} 400 no session
{"isolationLevel": 204 reads 99 (read committed)

The parse error is caught in AbstractServerHttpHandler (logged at WARNING, payload left null), so any handler whose body is optional goes on without it; /begin is where that changes what the client gets. I would expect a 400 for a body that does not parse, as for an invalid value.

Activity

  1. added
    serverCore server: HTTP API, users, security enforcement
    severity:minorCosmetic, documentation, edge case, or a workaround exists
    in progressThe team is actively working on this issue
    on Oct 18, 2026
  2. added this to the 26.11.1 milestone on Oct 19, 2026
  3. added 2 commits that reference this issue on Oct 19, 2026
  4. added theissue type on Oct 19, 2026
  5. lvca commented on Oct 19, 2026

    @lvca
    Member

    Fixed by #10345 (thanks @7487 for the report and the fix).

    POST /api/v1/begin/{database} with a body that is not a valid JSON object (truncated, garbled, a scalar or a top-level array) now answers 400 and starts no transaction, instead of silently opening one at the default isolation level. A request with no body, a blank body or a valid JSON object behaves as before.

    The HTTP API documentation for /begin has been updated accordingly.


    ❤️ Thanks for helping make ArcadeDB better! ArcadeDB is free and open source, sustained by its community. If it's useful to you or your company, please consider becoming a sponsor to keep development going.

  6. removed
    in progressThe team is actively working on this issue
    on Oct 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugserverCore server: HTTP API, users, security enforcementseverity:minorCosmetic, documentation, edge case, or a workaround exists

    Type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions