Skip to content


Runtime errors

error example explanation
access Tried to read files above directory, run system commands or failed usr/pwd
accp Tried to accept an incoming TCP/IP connection but failed to do so
adict d[::]:x Blocked assignment ('nyi)
arch :test set til 100
Tried to load file of wrong endian format
assign cos:12 Tried to redefine a reserved word
bad lambda h{select x by x from x} lambda from an older version of kdb+ over IPC that no longer parses
badtail Incomplete transaction at end of file, get good (count;length) with -11!(-2;`:file)
binary mismatch Wrong process for code profiler
can't Only commercially licensed kdb+ instances can encrypt code in a script
cast s:`a`b; c:`s$`a`e Value not in enumeration
close (1) content-length header missing from HTTP response
(2) handle: n – handle was closed by the remote while a msg was expected
con qcon client is not supported when kdb+ is in multithreaded input mode
cond Even number of arguments to $ (until V3.6 2018.12.06)
conn Too many connections (1022 max)
Could not initialize ssl (-26!)[] found SSL/TLS not enabled
d8 The log had a partial transaction at the end but q couldn’t truncate the file
decompression error at block b in f Error signalled by underlying decompression routine
domain til -1 Out of domain
dup `a`b xasc flip`a`b`a!() Duplicate column in table (since V3.6 2019.02.19)
dup names for cols/groups select a,a by a from t Name collision (since V4.0 2020.03.17)
elim ((-58?`3) set\:(),`a)$`a Too many enumerations (max: 57)
enable secondary threads via cmd line -s only \s 4 Command line enabled processes for parallel processing
encryption lib unavailable -36!(`:kf;"pwd") Failed to load OpenSSL libraries
expected response One-shot request did not receive response
failed to load TLS certificates Started kdb+ with -E 1 or -E 2 but without SSL/TLS enabled
from select price trade Badly formed select statement
hop Request to hopen a handle fails; includes message from OS
hwr Handle write error, can't write inside a peach
IJS "D=\001"0:"0=hello\0011=world" Key type is not I, J, or S.
insert t:([k:0 1]a:2 3);`t insert(0;3) Tried to insert a record with an existing key into a keyed table
invalid q -e 3 Invalid command-line option value
invalid password -36!(`:kf;"pwd") Invalid keyfile password
\l Not a data file
length ()+til 1 Arguments do not conform
limit 0W#2 Tried to generate a list longer than 240-1, or serialized object is > 1TB, or 'type if trying to serialize a nested object which has > 2 billion elements, or Parse errors
load Not a data file
loop a::b::a Dependency loop
main thread only -36!(`:kf;"pwd") Not executed from main thread
mismatch ([]a:til 4),([]b:til 3) Columns that can't be aligned for R,R or K,K
mlim Too many nested columns in splayed tables. (Prior to V3.0, limited to 999; from V3.0, 251; from V3.3, 65530)
mq Multi-threading not allowed
name too long Filepath ≥100 chars (until V3.6 2018.09.26)
need zlib to compress zlib not available
noamend t:([]a:1 2 3)
update b:{`n?`d;:`n?`d}[]
from `t
Cannot change global state from within an amend
no append to zipped enums V2:
.z.zd:17 2 6
Cannot append to zipped enum (from V3.0)
no `g# {`g#x}peach 2#enlist 0 1 A thread other than the main q thread has attempted to add a group attribute to a vector. Seen with peach+secondary threads or multithreaded input queue
noupdate {a::x}peach 0 1 Updates blocked by the -b cmd line arg, or reval code or a thread other than the main thread has attempted to update a global variable when in peach+secondary threads or multithreaded input queue. Update not allowed when using negative port number.
nosocket Can only open or use sockets in main thread.
nyi "a"like"**" Not yet implemented: it probably makes sense, but it’s not defined nor implemented, and needs more thinking about as the language evolves
os \foo bar Operating-system error or license error
par Unsupported operation on a partitioned table or component thereof
parse Invalid syntax; bad IPC header; or bad binary data in file
part Something wrong with the partitions in the HDB; or med applied over partitions or segments
path too long (`$":",1000#"a") set 1 2 3 File path ≥255 chars (100 before V3.6 2018.09.26)
PKCS5_PBKDF2_HMAC -36!(`:kf;"pwd") Library invocation failed
pwuid OS is missing libraries for getpwuid. (Most likely 32-bit app on 64-bit OS. Try to install ia32-libs.)
Q7 nyi op on file nested array
rank +[2;3;4] Invalid rank
rb Encountered a problem while doing a blocking read
restricted 0"2+3" in a kdb+ process which was started with -b cmd line. Also for a kdb+ process using the username:password authentication file, or the -b cmd line option, \x cannot be used to reset handlers to their default. e.g. \x
s-fail `s#3 2 Invalid attempt to set sorted attribute. Also encountered with `s#enums when loading a database (\l db) and enum target is not already loaded.
splay nyi op on splayed table
stack {.z.s[]}[] Ran out of stack space. Consider using Converge \ / instead of recursion.
step d:`s#`a`b!1 2;`d upsert `c`d!3 4 Tried to upsert a step dictionary in place
stop User interrupt (Ctrl-c) or time limit (-T)
stype '42 Invalid type used for Signal
sys {system "ls"}peach 0 1 Using system call from thread other than main thread
threadview Trying to calc a view in a thread other than main thread. A view can be calculated in the main thread only. The cached result can be used from other threads.
timeout Request to hopen a handle fails on a timeout; includes message from OS
TLS not enabled Received a TLS connection request, but kdb+ not started with -E 1 or -E 2
too many syms Kdb+ currently allows for ~1.4B interned symbols in the pool and will exit with this error when this threshold is reached
trunc The log had a partial transaction at the end but q couldn’t truncate the file
type til 2.2 Wrong type. Also see 'limit
type/attr error amending file Direct update on disk for this type or attribute is not allowed
u-fail `u#2 2 Invalid attempt to set unique or parted attribute
unmappable t:([]sym:`a`b;a:(();()))
When saving partitioned data each column must be mappable. () and ("";"";"") are OK
unrecognized key format -36!(`:kf;"pwd") Master keyfile format not recognized
upd Function upd is undefined (sometimes encountered during -11!`:logfile) or license error
utf8 The websocket requires that text is UTF-8 encoded
value No value
vd1 Attempted multithread update
view Tried to re-assign a view to something else
-w abort malloc hit -w limit or \w limit
-w init via cmd line Trying to allocate memory with \w without -w on command line
wsfull 999999999#0 malloc failed, or ran out of swap (or addressability on 32-bit). The params also reported are intended to help KX diagnose when assisting clients, and are subject to change.
wsm 010b wsum 010b Alias for nyi for wsum prior to V3.2
XXX delete x from system "d";x Value error (XXX undefined)

System errors

From file ops and IPC

error explanation
Bad CPU Type Tried to run 32-bit interpreter in macOS 10.15+
XXX:YYY XXX is from kdb+, YYY from the OS

XXX from addr, close, conn, p(from -p), snd, rcv or (invalid) filename, e.g. read0`:invalidname.txt

Parse errors

On execute or load

error example explanation
[({])}" "hello Open ([{ or "
branch a:"1;",65024#"0;"
value "{if[",a,"]}"
A branch (if;do;while;$[.;.;.]) more than 65025 byte codes away (255 before V3.6 2017.09.26)
char value "\000" Invalid character (watch out for non-breaking spaces in copied expressions)
globals a:"::a"sv string til 111;
Too many global variables
limit a:";"sv string 2+til 241;
Too many constants, or limit error
locals a:":a"sv string til 111;
Too many local variables
params f:{[a;b;c;d;e;f;g;h;e]} Too many parameters (8 max)

License errors

On launch

error explanation
{timestamp} couldn't connect to license daemon Could not connect to KX license server (kdb+ On Demand)
cores The license is for fewer cores than available
cpu The license is for fewer CPUs than available
exp License expiry date is prior to system date
host The hostname reported by the OS does not match the hostname or hostname-pattern in the license. If you see in the kdb+ banner, the machine almost certainly cannot resolve its hostname to an IP address, which will cause a 'host error.
k4.lic k4.lic file not found, check contents of environment variables [QHOME../learn/ and QLIC
os Wrong OS or operating-system error (if runtime error)
srv Client-only license in server mode
upd Version of kdb+ more recent than update date, or the function upd is undefined (sometimes encountered during -11!`:logfile)
user Unlicensed user
wha System date is prior to kdb+ version date
wrong q.k version q and q.k versions do not match

License-related errors are reported with the prefix licence error: since V4.0 2019.10.22.


Handling errors

Use system command \ (abort) to clear one level off the execution stack.

Keyword exit terminates the kdb+ process.

Use hook .z.exit to set a callback on process exit.

Use Signal to signal errors.

Use Trap and Trap At to trap errors.