For each role, the CLI exposes three identifiers (via role list):
| Field |
Example |
Short ID (id) |
BBBBBBBBBBBB |
Full username (username) |
pscale_api_BBBBBBBBBBBB.suffix |
Display name (name) |
main-2026-01-28-xxxxxx |
Other role subcommands (get, source positional of reassign) accept the short ID. reassign --successor, however, accepts none of these three but only a fourth, undocumented format.
Given two roles with short ID A and B:
# Short ID (works for `role get`, source positional):
$ pscale role reassign … A --successor B
Error: successor role "B" does not exist
# Full username (as shown by `role list`):
$ pscale role reassign … A --successor pscale_api_B.suffix
Error: successor: invalid role name "pscale_api_B.suffix"
# Display name:
$ pscale role reassign … A --successor main-2026-01-28-xxxxxx
Error: successor: invalid role name "main-2026-01-28-xxxxxx"
# Prefixed-but-unsuffixed (works - undocumented):
$ pscale role reassign … A --successor pscale_api_B
Objects … successfully reassigned to pscale_api_B.
Expected
--successor should accept the short ID and/or full username, symmetric with the source positional.
Bonus bug
With certain rejected formats the CLI emits
Error: internal error, response body doesn't match error type signature
instead of a clear message.
Environment
- pscale 0.286.0
- PlanetScale Postgres database
For each role, the CLI exposes three identifiers (via
role list):id)BBBBBBBBBBBBusername)pscale_api_BBBBBBBBBBBB.suffixname)main-2026-01-28-xxxxxxOther
rolesubcommands (get, source positional ofreassign) accept the short ID.reassign --successor, however, accepts none of these three but only a fourth, undocumented format.Given two roles with short ID
AandB:Expected
--successorshould accept the short ID and/or full username, symmetric with the source positional.Bonus bug
With certain rejected formats the CLI emits
Error: internal error, response body doesn't match error type signatureinstead of a clear message.
Environment