Errors¶
Runtime errors¶
- 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
-
E.g.
d[::]:x
-
Blocked assignment (
'nyi
) - arch
-
E.g.
`:test set til 100 -17!`:test
Tried to load file of wrong endian format
- assign
-
E.g.
cos:12
Tried to redefine a reserved word
- bad lambda
-
E.g.
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
-
E.g.
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
-
Error signalled by underlying decompression routine
- domain
-
E.g.
til -1
Out of domain
- dup
-
E.g.
`a`b xasc flip`a`b`a!()
Duplicate column in table (since V3.6 2019.02.19)
- dup names for cols/groups
-
E.g.
select a,a by a from t
Name collision (since V4.0 2020.03.17)
- elim
-
E.g.
((-58?`3) set\:(),`a)$`a
Too many enumerations (max: 57)
- empty
-
The paths listed in
par.txt
do not contain any partitions or are inaccessible. - enable secondary threads via cmd line -s only
-
E.g.
\s 4
Command line enabled processes for parallel processing
- encryption lib unavailable
-
E.g.
-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
-
E.g.
select price trade
Badly formed select query
- hop
-
Request to
hopen
a handle fails; includes message from OS - hwr
-
Handle write error, can’t write inside a
peach
- IJS
-
E.g.
"D=\001"0:"0=hello\0011=world"
Key type is not
I
,J
, orS
. - insert
-
E.g.
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
-
E.g.
q -e 3
Invalid command-line option value
- invalid password
-
E.g.
-36!(`:kf;"pwd")
Invalid keyfile password
- \l
-
Not a data file
- length
-
E.g.
()+til 1
Arguments do not conform
- limit
-
E.g.
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
-
E.g.
a::b::a
-
Dependency loop
- main thread only
-
E.g.
-36!(`:kf;"pwd")
-
Not executed from main thread
- mismatch
-
E.g.
([]a:til 4),([]b:til 3)
-
Columns that can’t be aligned for
R,R
orK,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
-
E.g.
t:([]a:1 2 3) n:`a`b`c update b:{`n?`d;:`n?`d}[] from `t
-
Cannot change global state from within an amend
- no append to zipped enums
-
E.g.
`:sym?`c
-
Cannot append to zipped enum (from V3.0)
- no
`g#
-
E.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
-
E.g.
{a::x}peach 0 1
-
Updates blocked by the
-b
cmd line arg, orreval
code or a thread other than the main thread has attempted to update a global variable when inpeach
+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
-
E.g.
"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
-
E.g.
\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
-
E.g.
(`$":",1000#"a") set 1 2 3
-
File path ≥255 chars (100 before V3.6 2018.09.26)
- PKCS5_PBKDF2_HMAC
-
E.g.
-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
-
E.g.
+[2;3;4]
-
Invalid rank
- rb
-
Encountered a problem while doing a blocking read
- restricted
-
E.g.
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 .z.pg
- s-fail
-
E.g.
`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
-
E.g.
{.z.s[]}[]
-
Ran out of stack space. Consider using Converge
\
/
instead of recursion. - step
-
E.g.
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
-
E.g.
'42
- sys
-
E.g.
{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 about 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
-
E.g.
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
-
E.g.
`u#2 2
-
Invalid attempt to set unique or parted attribute
- unmappable
-
E.g.
t:([]sym:`a`b;a:(();())) .Q.dpft[`:thdb;.z.d;`sym;`t]
-
When saving partitioned data each column must be mappable.
()
and("";"";"")
are OK - unrecognized key format
-
E.g.
-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
- -w init via cmd line
-
Trying to allocate memory with
\w
without-w
on command line - wsfull
-
E.g.
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
-
E.g.
010b wsum 010b
-
Alias for
nyi
forwsum
prior to V3.2 - XXX
-
E.g.
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; value"{a",a,"::0}" Too many global variables |
limit | a:";"sv string 2+til 241; value"{",a,"}" Too many constants, or limit error |
locals | a:":a"sv string til 111; value"{a",a,":0}" 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 255.255.255.255 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 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.