Skip to content

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

badmsg

Failure in IPC validator

bad meta data in file

The compressed file contains corrupt meta data. This can happen if the file was incomplete at the time of reading.

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. Max connections was 1022 prior to 4.1t 2023.09.15, otherwise the limit imposed by the operating system (operating system configurable for system/protocol).

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, or S.

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 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

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, 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

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.)

or

UID (user id) not found in system database of users (e.g. running on container with randomized UID). To prevent this issue (since 4.1t 2023.05.26,4.0 2023.11.03) system environment variable HOME or USER can be set to home directory for the user.

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

Invalid type used for Signal

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

malloc hit -w limit or \w limit

-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 for wsum 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 likely cannot resolve its hostname to an IP address, which will cause a host error.

Since 4.1t 2022.07.01,4.0 2022.07.01 the detected hostname is printed. It can be used to compare with the hostname used within the license.
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.

Licensing

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.

Debugging