This command does not change a session’s
status. To close, reopen or delete a session use the
dedicated lifecycle commands — Close Session,
Reopen Session and
Delete Session — which enforce the legal
transitions and run the required background work. See
Session Lifecycle.POST /revisions/:id/data/command (Command: update_session)
Request Body
tracing accepts exactly one field and rejects any other:
A session’s tracing is what its executions inherit —
Create Execution layers its own
tracing over the
session’s — so turning log_data on affects executions started afterwards, not ones already running. It is
also written whole rather than merged into what is stored, so "tracing": {} clears the block outright
instead of leaving log_data as it was. Behaviour returns to the default, since an absent log_data reads as
false — but the stored value is exactly {}, so the session comes back carrying "tracing": {} rather than
"tracing": { "log_data": false }.
An absent key means “leave unchanged”; a key present with an empty value does not. "description": "" and
"tracing": {} are writes.
A request carrying none of alias, description and tracing is a legal no-op: it returns the session
unchanged, and it is the one form of this command that a session which is no longer open still accepts.
Supplying any of the three makes it a mutating call, and every mutating call is gated on status: "open" —
not just a rename.
The alias and the other two are two separate writes, alias first, so a request carrying both is not atomic.
An alias_in_use rejection means nothing was written; a failure after the rename can leave the new alias in
place without the description or tracing beside it.
See Alias Grammar for the character rules, length
limits, the id-shape restriction, and which commands accept an alias in place of an id.
Response
The updated session comes back in full, the same way the lifecycle commands return it. A request that
supplies nothing to change still returns it, unmodified.

