- Targets NocoDB v2026.10.1, which fixes the
uidtPATCH deadlock (nocodb#14347): a type change now takes ~0.2 s instead of hanging 60 s. - NocoDB v2026.10.1 needs more memory: at idle it holds ~870 MB resident, and with 1 GB of RAM it crashed with a Node heap OOM during schema configuration.
sync_data_src_eagerly():n_tables_expectedis replaced bytbls_expected, the titles of the expected tables. A count let the wait end while one expected table was still missing, which maderdb::reset_rdb()fail intermittently once NocoDB stopped absorbing junction tables.update_tbl_col()no longer swallows HTTP 4xx errors as warnings, nor absorbs HTTP 500 onuidtchanges. Both workarounds were inert on v2026.10.1; the 4xx one only hid a request NocoDB refuses by design (changing a primary key'suidt,ERR_SYSTEM_FIELD_NON_MODIFIABLE). Such requests now raise an error.
*_atcolumns are parsed with millisecond precision, so NocoDB's announced switch to12:34:56.000+00:00timestamps no longer turns them intoNA.- Error messages from NocoDB v2026.x are shown again: newer versions report errors as
errorcode plusmessageinstead ofmsg, which the client silently dropped. - A cached access token the server no longer accepts (HTTP 401, e.g. after NocoDB lost its metadata DB) now triggers one fresh sign-in and retry instead of failing.
- New
clear_cache().sync_data_src_eagerly()uses it while expected tables are missing, because NocoDB v2026.10.1 can keep a stale cached table list after a sync, sotbls()misses a table that exists. - Requests time out after 120 s instead of blocking forever on a stalled connection.
- Non-JSON error bodies (empty, or HTML while NocoDB starts up) now produce a plain HTTP status error instead of a JSON parse error that hid the status.
delete_api_token(): Theapi_tokenparameter is renamed toid_api_tokenand now takes the token's ID (theidcolumn ofapi_tokens()) rather than the raw token string. Addressing a token by its value returns HTTP 500 (verified on NocoDB v2026.05.1 and v2026.07.0; reported as nocodb#14349), and on newer NocoDB versions the raw value is not retrievable at all. Accepts an integer or character scalar, since the ID's type depends on the metadata backend.
- Targets NocoDB v2026.05.1. Tested against v2026.05.1 and v2026.07.0.
- v2026.07.0 is not currently usable for schema configuration: every PATCH changing a column's
uidtdeadlocks NocoDB's metadata DB for 60 s and then returns HTTP 500 with the change applied (nocodb#14347, introduced in v2026.05.2).update_tbl_col()copes, but callers converting many columns should stay on v2026.05.1 until that is fixed. api_tokens()output is version-dependent: v2026.05.1 still returns atokencolumn, while newer versions adopt show-secret-once and expose onlytoken_prefix/token_hash. Theidcolumn is present throughout and is whatdelete_api_token()uses.validate_user_email()now asserts thatverification_tokenis a non-empty string. Newer NocoDB versions droppedemail_verification_tokenfrom theupdate_user()response, so chaining the two silently produced a zero-length request path that failed with an unrelated-lookingAssertion on 'path' failederror several frames away.
update_tbl_col(): Absorbs the spurious HTTP 500 that NocoDB v2026.05.2+ returns for every PATCH changinguidt, despite applying the change correctly (verified acrossSingleLineText→LongText/Email/URL/PhoneNumberandLongText→SingleLineText; a metadata-only PATCH on the same column returns 200). The 500 is only absorbed after re-reading the column and confirming the requesteduidtactually took effect — a 500 that did not apply still propagates.update_tbl_col(): No longer complementstitleandcolumn_namefrom the column's current state when the caller omits them. NocoDB rejects any PATCH that carries those fields for a system field (an auto-increment primary key among them) with HTTP 422ERR_SYSTEM_FIELD_NON_MODIFIABLE, validating on their presence rather than on whether their values changed. Echoing them back unchanged therefore turned every metadata-only update on a primary-key column into an error — long misattributed to #13165 / #13789. Setting a description on a primary-key column now succeeds. An explicittitle =rename is unaffected, since the caller supplies the value in that case.
- Targets NocoDB v2026.04.5. Remains compatible with v0.301.5+ where features overlap.
- Documented LTAR V2 (NocoDB v2026.04.0) implications for
update_tbl_col(): linked-record columns now use a unified junction-table architecture and render as display-value pills. The legacyLinksfield is deprecated but still functional. - Documented native PostgreSQL
ENUM→SingleSelectmapping (NocoDB v2026.04.5). Manage option titles/colors/order via the NocoDB UI rather thanupdate_tbl_col(colOptions = ...). ENUM arrays andMultiSelect-backed ENUMs are unsupported by NocoDB.
- Added
"UUID"to the supporteduidtallowlist (NocoDB v2026.04.0 introduced auto-generated UUID fields).
update_tbl_col(): Only includeuidtin the PATCH body when explicitly provided. Previously,uidtwas always sent (falling back tocur_data), which caused NocoDB to wipecolOptions(e.g. SingleSelect dropdown options) when only updating a description.- Added workaround for NocoDB bug where PATCH requests on Checkbox columns fail with HTTP 500. These columns are now skipped with a warning. See nocodb/nocodb#12972