Package management
Section titled “Package management”The package management endpoints on the exec service read, initialise, update, install, compare, and pin the project’s package.json dependencies. Use them to manage Node.js packages inside a container without shelling out to npm yourself. Installations run asynchronously in the background, so the service responds 202 with a startedAt timestamp that the read endpoint then reflects in lastInstall.
Read package.json
Section titled “Read package.json”GET /api/v1/exec/package/read
Section titled “GET /api/v1/exec/package/read”Returns the contents of package.json, dependency counts, and the outcome of the most recent background install.
This endpoint takes no parameters.
curl -X GET "https://{projectId}-{containerId}-exec-1.{server}.containers.hoody.com/api/v1/exec/package/read" \ -H "Authorization: Bearer <token>"import { HoodyClient } from 'hoody-sdk';
const client = new HoodyClient({ baseURL: 'https://{projectId}-{containerId}-exec-1.{server}.containers.hoody.com', token: process.env.HOODY_TOKEN });
await client.exec.packages.getManifest();Response
Section titled “Response”{ "path": "/home/user/app/package.json", "content": {}, "dependencies": { "axios": "^1.7.0", "lodash": "^4.17.21" }, "devDependencies": { "typescript": "^5.5.0" }, "scripts": { "build": "tsc", "start": "node dist/index.js" }, "dependencyCount": 2, "devDependencyCount": 1, "lastInstall": { "status": "succeeded", "command": "npm install --save -- lodash axios", "packages": ["lodash", "axios"], "startedAt": "2026-01-15T10:30:00.000Z", "finishedAt": "2026-01-15T10:30:12.000Z", "durationMs": 12000 }}The lastInstall field is null when no install has been started since the exec service booted.
| Field | Type | Required | Description |
|---|---|---|---|
path | string | Yes | Path |
content | object | Yes | Content |
dependencies | object | Yes | Dependencies |
devDependencies | object | Yes | Dev Dependencies |
scripts | object | Yes | Scripts |
dependencyCount | integer | Yes | Dependency Count |
devDependencyCount | integer | Yes | Dev Dependency Count |
lastInstall | object | Yes | The last background install POST /package/install started since hoody-exec started (null when none): running until npm is done, then succeeded or failed |
lastInstall.status | string | Yes | One of running, succeeded, failed |
lastInstall.command | string | Yes | The npm command line |
lastInstall.packages | array | Yes | The specs asked for (empty for a bare install of the manifest) |
lastInstall.startedAt | string | Yes | The 202’s startedAt |
lastInstall.finishedAt | string | No | Finish timestamp |
lastInstall.durationMs | integer | No | Duration in milliseconds |
lastInstall.error | string | No | Why it failed (npm error lines, truncated to 2000 characters) |
lastInstall.incomplete | array | No | Packages npm reported installed but left unloadable |
{ "error": "Malformed query string", "code": "ERROR_400", "timestamp": "2026-01-01T00:00:00.000Z"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_400 | Bad request | The service answers 400 with this code; the message names the cause. | Percent-encoding failed to decode. Use valid %XX escapes. |
Returned when package.json does not exist.
{ "error": "package.json not found", "code": "ERROR_404", "timestamp": "2026-01-01T00:00:00.000Z"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_404 | Not found | The service answers 404 with this code; the message names the cause. | - |
{ "error": "Too many distinct clients", "code": "ERROR_429", "timestamp": "2026-01-01T00:00:00.000Z", "retryAfter": 60}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_429 | Too many requests | The service answers 429 with this code; the message names the cause. Messages: Too many distinct clients, Too many requests. | - |
{ "error": "Internal server error", "code": "ERROR_500", "timestamp": "2026-01-01T00:00:00.000Z"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_500 | Internal server error | The service answers 500 with this code; the message names the cause. Other messages on this status are composed at runtime and are not listed here. | - |
Initialize package.json
Section titled “Initialize package.json”POST /api/v1/exec/package/init
Section titled “POST /api/v1/exec/package/init”Creates a package.json if it does not already exist. The request body is optional; send {} to create with all defaults.
This endpoint takes no parameters.
Request body
Section titled “Request body”| Field | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | No | "hoody-exec-project" | Name |
version | string | No | "1.0.0" | Version |
description | string | No | "Hoody Exec project" | Description |
force | boolean | No | false | Force |
curl -X POST "https://{projectId}-{containerId}-exec-1.{server}.containers.hoody.com/api/v1/exec/package/init" \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{ "name": "my-app", "version": "1.0.0", "description": "My Hoody app", "force": false }'import { HoodyClient } from 'hoody-sdk';
const client = new HoodyClient({ baseURL: 'https://{projectId}-{containerId}-exec-1.{server}.containers.hoody.com', token: process.env.HOODY_TOKEN });
await client.exec.packages.createManifest({ name: 'my-app', version: '1.0.0', description: 'My Hoody app', force: false,});Response
Section titled “Response”{ "message": "package.json created successfully", "path": "/home/user/app/package.json", "content": { "name": "my-app", "version": "1.0.0", "description": "My Hoody app", "dependencies": {} }, "created": true}| Field | Type | Required | Default | Description |
|---|---|---|---|---|
message | string | Yes | - | Message (always package.json created successfully) |
path | string | Yes | - | Path |
content | object | Yes | - | The contents that were written |
content.name | string | Yes | "hoody-exec-project" | Name |
content.version | string | Yes | "1.0.0" | Version |
content.description | string | Yes | "Hoody Exec project" | Description |
content.dependencies | object | Yes | {} | Dependencies |
created | boolean | Yes | - | Whether the manifest was created (false when it already existed without force) |
{ "error": "Malformed query string", "code": "ERROR_400", "timestamp": "2026-01-01T00:00:00.000Z"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_400 | Bad request | The service answers 400 with this code; the message names the cause. Messages: Malformed query string, Invalid JSON body, Request aborted before the body was fully received. | Percent-encoding failed to decode. Use valid %XX escapes. |
Returned when the request body was not fully received within the read timeout.
{ "error": "Request body read timeout", "code": "ERROR_408", "timestamp": "2026-01-01T00:00:00.000Z", "details": { "timeoutMs": 30000 }}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_408 | Request timeout | The service answers 408 with this code; the message names the cause. | - |
Returned when package.json already exists and force is not set.
{ "error": "package.json already exists", "code": "ERROR_409", "timestamp": "2026-01-01T00:00:00.000Z", "details": { "path": "/home/user/app/package.json", "suggestion": "Pass force: true to overwrite" }}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_409 | Conflict | The service answers 409 with this code; the message names the cause. | - |
Returned when the request body exceeds the maximum size.
{ "error": "Payload too large", "code": "ERROR_413", "timestamp": "2026-01-01T00:00:00.000Z", "details": { "maxBytes": 1048576 }}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_413 | Payload too large | The service answers 413 with this code; the message names the cause. | - |
{ "error": "Too many distinct clients", "code": "ERROR_429", "timestamp": "2026-01-01T00:00:00.000Z", "retryAfter": 60}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_429 | Too many requests | The service answers 429 with this code; the message names the cause. Messages: Too many distinct clients, Too many requests. | - |
{ "error": "Internal server error", "code": "ERROR_500", "timestamp": "2026-01-01T00:00:00.000Z"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_500 | Internal server error | The service answers 500 with this code; the message names the cause. Other messages on this status are composed at runtime and are not listed here. | - |
Update package.json
Section titled “Update package.json”POST /api/v1/exec/package/update
Section titled “POST /api/v1/exec/package/update”Edits an existing package.json in place. Use dependencies to add or change entries, scripts to edit scripts, metadata for top-level fields, and remove to drop names from dependencies.
This endpoint takes no parameters.
Request body
Section titled “Request body”All fields are optional. null for any field behaves the same as omitting it.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
dependencies | object | null | No | - | Dependencies to add or change, as package name → version range. A non-string version or invalid spec is refused with a 400. |
scripts | object | null | No | - | scripts entries to add or change, as script name → command. A non-string command is refused with a 400. |
metadata | object | null | No | - | Top-level fields to set (name, version, description, and so on). dependencies, devDependencies, and scripts here are ignored. |
remove | array | null | No | - | Package names to remove from dependencies. |
curl -X POST "https://{projectId}-{containerId}-exec-1.{server}.containers.hoody.com/api/v1/exec/package/update" \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{ "dependencies": { "lodash": "^4.17.21", "axios": "^1.7.0" }, "scripts": { "lint": "eslint ." }, "remove": ["old-package"] }'import { HoodyClient } from 'hoody-sdk';
const client = new HoodyClient({ baseURL: 'https://{projectId}-{containerId}-exec-1.{server}.containers.hoody.com', token: process.env.HOODY_TOKEN });
await client.exec.packages.updateManifest({ dependencies: { lodash: '^4.17.21', axios: '^1.7.0', }, scripts: { lint: 'eslint .', }, remove: ['old-package'],});Response
Section titled “Response”{ "message": "package.json updated successfully", "changes": [ "added dependencies.lodash = ^4.17.21", "added dependencies.axios = ^1.7.0", "added scripts.lint = eslint .", "removed dependencies.old-package" ], "changeCount": 4, "dependencies": { "axios": "^1.7.0", "lodash": "^4.17.21" }}| Field | Type | Required | Description |
|---|---|---|---|
message | string | Yes | Message (always package.json updated successfully) |
changes | array | Yes | Human-readable list of changes applied |
changeCount | integer | Yes | Number of changes applied |
dependencies | object | Yes | Dependencies after the update |
{ "error": "Malformed query string", "code": "ERROR_400", "timestamp": "2026-01-01T00:00:00.000Z"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_400 | Bad request | The service answers 400 with this code; the message names the cause. Messages: Malformed query string, Invalid JSON body, Request aborted before the body was fully received. Other messages on this status are composed at runtime and are not listed here. | Percent-encoding failed to decode. Use valid %XX escapes. |
Returned when package.json does not exist.
{ "error": "package.json not found", "code": "ERROR_404", "timestamp": "2026-01-01T00:00:00.000Z", "details": { "suggestion": "Call POST /package/init first" }}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_404 | Not found | The service answers 404 with this code; the message names the cause. | - |
Returned when the request body was not fully received within the read timeout.
{ "error": "Request body read timeout", "code": "ERROR_408", "timestamp": "2026-01-01T00:00:00.000Z", "details": { "timeoutMs": 30000 }}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_408 | Request timeout | The service answers 408 with this code; the message names the cause. | - |
Returned when the request body exceeds the maximum size.
{ "error": "Payload too large", "code": "ERROR_413", "timestamp": "2026-01-01T00:00:00.000Z", "details": { "maxBytes": 1048576 }}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_413 | Payload too large | The service answers 413 with this code; the message names the cause. | - |
{ "error": "Too many distinct clients", "code": "ERROR_429", "timestamp": "2026-01-01T00:00:00.000Z", "retryAfter": 60}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_429 | Too many requests | The service answers 429 with this code; the message names the cause. Messages: Too many distinct clients, Too many requests. | - |
{ "error": "Internal server error", "code": "ERROR_500", "timestamp": "2026-01-01T00:00:00.000Z"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_500 | Internal server error | The service answers 500 with this code; the message names the cause. Other messages on this status are composed at runtime and are not listed here. | - |
Install packages
Section titled “Install packages”POST /api/v1/exec/package/install
Section titled “POST /api/v1/exec/package/install”Runs npm install for the given packages in the background. The response returns 202 with a startedAt timestamp; subsequent calls to GET /package/read report the same timestamp in lastInstall along with the final status (running, succeeded, or failed).
This endpoint takes no parameters.
Request body
Section titled “Request body”All fields are optional.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
packages | array | No | - | Package specs to install (for example ["lodash@^4.17.21", "axios"]). Empty array installs the current manifest. |
dev | boolean | No | false | Dev |
save | boolean | No | true | Save |
force | boolean | No | false | Force |
curl -X POST "https://{projectId}-{containerId}-exec-1.{server}.containers.hoody.com/api/v1/exec/package/install" \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{ "packages": ["lodash@^4.17.21", "axios"], "dev": false, "save": true, "force": false }'import { HoodyClient } from 'hoody-sdk';
const client = new HoodyClient({ baseURL: 'https://{projectId}-{containerId}-exec-1.{server}.containers.hoody.com', token: process.env.HOODY_TOKEN });
await client.exec.packages.install({ packages: ['lodash@^4.17.21', 'axios'], dev: false, save: true, force: false,});Response
Section titled “Response”{ "status": "installing", "command": "npm install --save -- lodash@^4.17.21 axios", "startedAt": "2026-01-15T10:30:00.000Z", "message": "Install started in background"}| Field | Type | Required | Description |
|---|---|---|---|
status | string | Yes | Always installing |
command | string | Yes | The exact npm command line that was spawned |
startedAt | string | Yes | ISO timestamp; GET /package/read reports this same value as lastInstall.startedAt once the install finishes |
message | string | Yes | Human-readable summary |
{ "error": "Malformed query string", "code": "ERROR_400", "timestamp": "2026-01-01T00:00:00.000Z"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_400 | Bad request | The service answers 400 with this code; the message names the cause. Messages: Malformed query string, Invalid JSON body, Request aborted before the body was fully received. Other messages on this status are composed at runtime and are not listed here. | Percent-encoding failed to decode. Use valid %XX escapes. |
Returned when the request body was not fully received within the read timeout.
{ "error": "Request body read timeout", "code": "ERROR_408", "timestamp": "2026-01-01T00:00:00.000Z", "details": { "timeoutMs": 30000 }}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_408 | Request timeout | The service answers 408 with this code; the message names the cause. | - |
Returned when the requested version does not match the range declared in the scripts package.json, or when an installed package cannot be replaced because scripts may have it loaded.
{ "error": "Installed version does not match declared range", "code": "ERROR_409", "timestamp": "2026-01-01T00:00:00.000Z", "details": { "package": "hoody-sdk", "installedVersion": "1.2.0", "declared": "^1.0.0" }}This status has no defined error codes beyond the standard envelope above. Inspect details.package, details.installedVersion, and details.declared to determine the cause.
Returned when the request body exceeds the maximum size.
{ "error": "Payload too large", "code": "ERROR_413", "timestamp": "2026-01-01T00:00:00.000Z", "details": { "maxBytes": 1048576 }}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_413 | Payload too large | The service answers 413 with this code; the message names the cause. | - |
{ "error": "Too many distinct clients", "code": "ERROR_429", "timestamp": "2026-01-01T00:00:00.000Z", "retryAfter": 60}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_429 | Too many requests | The service answers 429 with this code; the message names the cause. Messages: Too many distinct clients, Too many requests. | - |
{ "error": "Internal server error", "code": "ERROR_500", "timestamp": "2026-01-01T00:00:00.000Z", "details": { "installDir": "/home/user/app/node_modules", "resolutionMode": "scripts-only", "searchPaths": [ "/home/user/app/node_modules", "/hoody/runtime/node_modules" ] }}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_500 | Internal server error | The service answers 500 with this code; the message names the cause. Other messages on this status are composed at runtime and are not listed here. | - |
Compare packages
Section titled “Compare packages”POST /api/v1/exec/package/compare
Section titled “POST /api/v1/exec/package/compare”Compares the manifests dependencies against the packages actually installed on disk. Reports missing, outdated, unverifiable, and extra packages. The request body is not read; send no body or {}.
This endpoint takes no parameters.
curl -X POST "https://{projectId}-{containerId}-exec-1.{server}.containers.hoody.com/api/v1/exec/package/compare" \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{}'import { HoodyClient } from 'hoody-sdk';
const client = new HoodyClient({ baseURL: 'https://{projectId}-{containerId}-exec-1.{server}.containers.hoody.com', token: process.env.HOODY_TOKEN });
await client.exec.packages.compare({});Response
Section titled “Response”{ "summary": { "total": 5, "installed": 3, "missing": 1, "outdated": 1, "unverifiable": 0, "extra": 0 }, "missing": ["axios"], "outdated": [ { "package": "lodash", "declared": "^4.17.21", "installed": "4.17.20" } ], "unverifiable": [], "extra": [], "allInstalled": false, "upToDate": false}| Field | Type | Required | Description |
|---|---|---|---|
summary | object | Yes | Summary |
summary.total | integer | Yes | Total declared dependencies |
summary.installed | integer | Yes | Count installed at the declared range |
summary.missing | integer | Yes | Count not on disk at all |
summary.outdated | integer | Yes | Count installed but not at the declared range |
summary.unverifiable | integer | Yes | Count installed but whose declared range could not be checked |
summary.extra | integer | Yes | Count on disk but not declared |
missing | array | Yes | Package names not installed |
outdated | array | Yes | Outdated entries (each: package, declared, installed) |
unverifiable | array | Yes | Unverifiable entries (each: package, declared, installed, reason) |
extra | array | Yes | Package names on disk but not declared |
allInstalled | boolean | Yes | True when every declared dependency is on disk (regardless of version) |
upToDate | boolean | Yes | True when every declared dependency matches its declared range and none are extra or unverifiable |
{ "error": "Request body must be a JSON object", "code": "ERROR_400", "timestamp": "2026-01-01T00:00:00.000Z"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_400 | Bad request | The service answers 400 with this code; the message names the cause. Messages: Request body must be a JSON object, Malformed query string (percent-encoding failed to decode, use valid %XX escapes), Invalid JSON body (ensure the body is valid JSON, for example a backslash followed by a backtick is not a valid escape), Request aborted before the body was fully received. | - |
Returned when package.json does not exist.
{ "error": "package.json not found", "code": "ERROR_404", "timestamp": "2026-01-01T00:00:00.000Z"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_404 | Not found | The service answers 404 with this code; the message names the cause. | - |
Returned when the request body was not fully received within the read timeout.
{ "error": "Request body read timeout", "code": "ERROR_408", "timestamp": "2026-01-01T00:00:00.000Z", "details": { "timeoutMs": 30000 }}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_408 | Request timeout | The service answers 408 with this code; the message names the cause. | - |
Returned when the request body exceeds the maximum size.
{ "error": "Payload too large", "code": "ERROR_413", "timestamp": "2026-01-01T00:00:00.000Z", "details": { "maxBytes": 1048576 }}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_413 | Payload too large | The service answers 413 with this code; the message names the cause. | - |
{ "error": "Too many distinct clients", "code": "ERROR_429", "timestamp": "2026-01-01T00:00:00.000Z", "retryAfter": 60}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_429 | Too many requests | The service answers 429 with this code; the message names the cause. Messages: Too many distinct clients, Too many requests. | - |
{ "error": "Internal server error", "code": "ERROR_500", "timestamp": "2026-01-01T00:00:00.000Z"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_500 | Internal server error | The service answers 500 with this code; the message names the cause. Other messages on this status are composed at runtime and are not listed here. | - |
Pin versions
Section titled “Pin versions”POST /api/v1/exec/package/pin
Section titled “POST /api/v1/exec/package/pin”Replaces declared version ranges with exact installed versions in package.json. Pass an explicit list of packages to pin, or pass a single module name, or both. Packages that cannot be pinned (for example those declared as a tag or git range) are reported in unpinnable.
This endpoint takes no parameters.
Request body
Section titled “Request body”All fields are optional.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
packages | array | No | - | Package names to pin |
module | string | No | - | Module |
curl -X POST "https://{projectId}-{containerId}-exec-1.{server}.containers.hoody.com/api/v1/exec/package/pin" \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{ "packages": ["lodash", "axios"] }'import { HoodyClient } from 'hoody-sdk';
const client = new HoodyClient({ baseURL: 'https://{projectId}-{containerId}-exec-1.{server}.containers.hoody.com', token: process.env.HOODY_TOKEN });
await client.exec.packages.pin({ packages: ['lodash', 'axios'],});Response
Section titled “Response”{ "message": "Pinned 2 packages", "pinned": ["lodash", "axios"], "unpinnable": [], "count": 2, "dependencies": { "axios": "1.7.4", "lodash": "4.17.21" }}| Field | Type | Required | Description |
|---|---|---|---|
message | string | Yes | Message |
pinned | array | Yes | Package names that were pinned |
unpinnable | array | Yes | Entries that could not be pinned, each with package, declared (or null), and reason |
count | integer | Yes | Number of packages pinned |
dependencies | object | No | Dependencies map after pinning; present when the response matches the second anyOf shape |
{ "error": "packages must be an array of package names and module must be a package name", "code": "ERROR_400", "timestamp": "2026-01-01T00:00:00.000Z"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_400 | Bad request | The service answers 400 with this code; the message names the cause. Messages: packages must be an array of package names and module must be a package name, Malformed query string (percent-encoding failed to decode, use valid %XX escapes), Invalid JSON body (ensure the body is valid JSON), Request aborted before the body was fully received. | - |
Returned when package.json does not exist.
{ "error": "package.json not found", "code": "ERROR_404", "timestamp": "2026-01-01T00:00:00.000Z"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_404 | Not found | The service answers 404 with this code; the message names the cause. | - |
Returned when the request body was not fully received within the read timeout.
{ "error": "Request body read timeout", "code": "ERROR_408", "timestamp": "2026-01-01T00:00:00.000Z", "details": { "timeoutMs": 30000 }}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_408 | Request timeout | The service answers 408 with this code; the message names the cause. | - |
Returned when the request body exceeds the maximum size.
{ "error": "Payload too large", "code": "ERROR_413", "timestamp": "2026-01-01T00:00:00.000Z", "details": { "maxBytes": 1048576 }}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_413 | Payload too large | The service answers 413 with this code; the message names the cause. | - |
{ "error": "Too many distinct clients", "code": "ERROR_429", "timestamp": "2026-01-01T00:00:00.000Z", "retryAfter": 60}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_429 | Too many requests | The service answers 429 with this code; the message names the cause. Messages: Too many distinct clients, Too many requests. | - |
{ "error": "Internal server error", "code": "ERROR_500", "timestamp": "2026-01-01T00:00:00.000Z"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ERROR_500 | Internal server error | The service answers 500 with this code; the message names the cause. Other messages on this status are composed at runtime and are not listed here. | - |