Skip to content

Known issues

Kx Analyst listens on all network interfaces (using \p)

By default, Analyst uses \p port to set the process port if not already set. If only listening on localhost is desired, either:

  • set the port before loading Analyst (\p localhost:port),
  • set the environment variable ANALYST_PORT="localhost:port", or
  • update the Analyst config at <install>/config/config.{profile,bat} setting ANALYST_PORT="localhost:port"

Stdout/err redirection for large messages can block process

Large stdout/err messages can fill the redirection buffer causing the process to block. Signaling SIGINT on the process will cause it to resume. The size of the buffer depends on the operating system in use. In *nix and macOS, this corresponds to the maximum pipe size, and is variable on Windows.

To disable stdout/err redirection you may define the environment variable ANALYST_NOUSE_REDIR=true

Error 'snd. OS reports: Resource temporarily unavailable serving Analyst

Prior to V3.5/3.6 2018.10.03, starting kdb+ with TLS enabled to serve content over HTTPS could result in a 'snd error. This is fixed in V3.5 and 3.6 as of that date, and is not an issue when not using TLS.

-U user/password file checks unsupported

Analyst will use under the hood to perform authentication over HTTP and WebSockets. -U is ignored by this handler, for this reason -U password file checks are unsupported.

Multiple concurrent users

Analyst is currently designed for a single user at a time. Multiple users can attach to the same q process as long as they can authenticate against it. Messages (stdout, stderr, and scripted visuals) are broadcast to all Analyst sessions.

Suspended q processes

If a q process is in suspended mode, i.e., within the q debugger with a prompt like q)), then all requests to the process are suspended until execution resumes as normal. This means that use of Analyst will also be suspended while in this mode.

Background processes with basic auth

Analyst authentication requires user to input a username and password. If authentication is desired when starting q as a background process, write custom authentication handling so that username and password can be configured however desired, and load launcher.q_ as usual, with ANALYST_USE_AUTH="no". See the Analyst for more information on usage of .z.*.


Currently Analyst requires the following namespaces for regular operation:

.ax           .axbits      .axdc      .axexport  .aximport  .axparser    .axq
.axsavestubs  .bct         .child     .core      .cov       .datatype    .ds
.edi          .export      .ext       .fb        .flow      .gg          .im
.localize     .localrepo   .mock      .nvqc      .pc        .pcre        .pcre2
.plugin       .pnull       .profile   .pview     .qc        .qch         .qd
.qdate        .qdtools     .qlint     .qp        .qtr       .qu          .qurl
.rch          .refactor    .registry  .rt        .sc        .signal      .skia
.skiaw        .ss          .st        .str       .table     .tmut        .tr
.tz           .utl         .vcs       .visgg     .vm        .ws          .wsi
.wsu          .wws

In future releases, most of the above namespaces will be prefixed with .ax to reduce potential collisions. Namespaces that appear in the Analyst Function Reference will not be renamed and can be relied on.