Installing the watsonx Orchestrate Developer Edition
You might encounter errors when installing the watsonx Orchestrate Developer Edition. To address the most common errors, see the following topics for solutions:server start command fails with pull access denied
server start command fails with pull access denied
-
Try to log in manually with the following command:
-
If you manage to log in and the server still fails to start, locate the Docker config file. Usually, you find this file in
~/.docker/config.json. If it doesn’t exist, you can create it. -
Add the following content to the file:
Where
BASE64_ENCODED_APIKEYis the base64 encoded string ofiamapikey:DOCKER_IAM_KEY.
Permission denied when trying to download Docker images
Permission denied when trying to download Docker images
-
Add Docker to the group of users that can use
sudo. -
Run the following command to log in to a new group:
-
Check if your user belongs to the
dockergroup: -
Try running Docker’s
hello-worldto check if you’re able to run Docker:
Document processing image not found during server startup
Document processing image not found during server startup
--with-doc-processing or -d), such as:-
Verify your ADK version: Ensure you’re using the latest version of the ADK CLI:
-
Update to the latest version if needed:
-
Reset and restart the server:
- Check your registry configuration: If you’re using a custom registry or on-premises setup, verify that all required images are available in your registry. Contact your administrator if images are missing.
-
Alternative workaround: If document processing is not critical for your current work, start the server without the
-dor--with-doc-processingflag:
DNS resolution failure when pulling Docker images from the IBM registry
DNS resolution failure when pulling Docker images from the IBM registry
orchestrate server start, the ADK pulls Docker images from the IBM Container Registry. If you cannot resolve the registry hostname, the command fails immediately with an error similar to:- Corporate DNS or web proxy blocking IBM Cloud hostnames
- VPN split-tunnel configuration dropping traffic to IBM registry endpoints
- Docker Desktop that uses its own internal DNS resolver rather than the system resolver
- Cloud VM (AWS EC2, Azure VM, GCP) default DNS not forwarding external hostnames
NXDOMAIN, no such host, or time out, the problem is with the DNS resolver that you are using. Proceed to the following workarounds.If nslookup succeeds but the ADK still fails, the issue is inside the Docker daemon. Skip to Workaround 3.Step 2 Check whether Docker itself can reach the networkdocker pull hello-world fails, Docker has a general networking problem unrelated to the IBM registry. Reinstall Docker Desktop or check your firewall rules before you continue.Workaround 1 Configure Docker Desktop to use a public DNS serverOn macOS and Windows, Docker Desktop uses its own internal DNS resolver. Override it to use a public resolver such as Google (8.8.8.8) or Cloudflare (1.1.1.1):- Open Docker Desktop.
- Go to Settings → Docker Engine.
-
Add or merge the following JSON into the daemon configuration:
- Click Apply & restart.
-
Retry
orchestrate server start.
/etc/hosts (Linux / macOS)If DNS resolution consistently fails for the registry hostname, you can pin it to its current IP address as a temporary fix.-
Resolve the current IP address from a machine that can reach it (or contact your network team):
-
Open
/etc/hostswith sudo privileges: -
Add the following line, replacing
<IP>with the address you resolved: -
Save the file and retry
orchestrate server start.
- Open Docker Desktop → Settings → Resources → Proxies.
- Enable Manual proxy configuration.
- Enter your HTTP and HTTPS proxy addresses (for example,
http://proxy.company.com:8080). - Add
localhost,127.0.0.1to the No proxy field. - Click Apply & restart.
No environment file
No environment file
.env file on your local machine. To make it accessible within your Ubuntu environment in WSL, follow these steps:- Open File Explorer and enter the following path in the address bar, replacing
yourUsernamewith your actual Linux username:
-
Open another File Explorer window and navigate to the location where your
.envfile is saved. -
Copy the
.envfile into your Linux home directory shown in the first window.
The Compose file is invalid because of unsupported variable types
The Compose file is invalid because of unsupported variable types
Homebrew not installed in Ubuntu
Homebrew not installed in Ubuntu
- Open Ubuntu via the Start Menu
- Check if Homebrew is already installed:
- Install Homebrew:
- Verify the installation path:
/home/linuxbrew/.linuxbrew/bin/brewPython not installed or incorrect version
Python not installed or incorrect version
- Open Ubuntu via the Start Menu.
- Check if Python 3.12 is installed:
- Install Python 3.12 using Homebrew:
- Set Python 3.12 as the default:
- Confirm the installation path:
- Verify that Python 3.12 is now the default:
Managing connections for Python tools
There are many error messages that may occur when importing a Python tool with credentials (especially one withexpected_credentials). Most serve to help guide the user in how to properly define their connections to work with their Python tool.
No app-id given
No app-id given
expected_credentials you see the following error:No connection exists
No connection exists
Type Mismatch
Type Mismatch
expected_credentials you see the following:my_app_id_2) and the correct type. Then import using an alias:Remote MCP toolkits
The following sections describe errors that can occur when importing or executing remote MCP toolkits.Toolkit import fails with CM-REFRESH-TOKEN-FAILED-001 (SSO/OBO connection)
Toolkit import fails with CM-REFRESH-TOKEN-FAILED-001 (SSO/OBO connection)
oauth_auth_on_behalf_of_flow) connection, the import fails with an error similar to the following:tools/list endpoint to discover available tools. If the toolkit is bound to an SSO/OBO connection, the platform attempts to obtain an access token from the identity provider. This token exchange requires an authenticated end-user session, which does not exist at import time. The identity provider therefore rejects the request and the import fails.ResolutionConfigure the draft and live environments with different connection kinds. Use key_value for draft (where the import happens) and keep SSO/OBO for live (where tool execution happens with a real user session):MCP tool execution fails with HTTP 431 (Request Header Fields Too Large)
MCP tool execution fails with HTTP 431 (Request Header Fields Too Large)
x-wxo-access-token header. If your application injects many context variables into the JWT, the resulting access token can exceed this limit.ResolutionReduce the size of the JWT payload by removing context variables that are not needed by the agent or MCP tool. Common candidates for removal include internal system values, verbose metadata, or redundant fields added by the identity provider.After pruning, verify that the x-wxo-access-token header stays below 8 KB. You can measure the JWT size by base64-decoding it and checking the payload byte length.Creating agents
Agent creation fails immediately on an on-premises deployment
Agent creation fails immediately on an on-premises deployment
orchestrate agents import, the operation fails immediately with:default tag before any agent can be created. On a fresh on-premises installation, no default model exists, so the agent creation request fails.Resolution-
Create a model YAML file with the
defaulttag:default-model.yaml -
Import the model into your on-premises environment:
If the model is already imported without the
defaulttag, remove it and re-import: - Retry agent creation.

