Troubleshooting
Find safe remedies for installation, configuration, engine and discovery failures.
Use this page for the free Docker seller from your invitation. Run commands from ~/gyblos-seller
(or your chosen installation folder). Read the exact code before changing anything. Keep the existing
identity and volumes throughout diagnosis.
Diagnosis
cd ~/gyblos-seller
docker compose ps
docker compose exec seller gyblos seller statusFor STARTING, wait briefly and check again. For FAILING, read the phase, code and hint.
For NOT_CONFIRMED, check whether the container is actually up. For STOPPED, start with
docker compose up -d --force-recreate seller. RUNNING does not prove publication or an external request.
If exec reports that the service is stopped or restarting:
cd ~/gyblos-seller
docker compose run --rm seller gyblos doctorDoctor performs dependency probes and prints public identity, codes and hints. For the local default,
check Ollama first. Only use --online when you intend additional remote probes.
Installation
Docker
| Symptom or exact output | Remedy |
|---|---|
Docker is not installed or Docker Compose v2 is missing | Install Docker with the Compose plugin, v2.17 or later, using the platform's normal installation process. |
Docker is not running | Start Docker Desktop or the authorized Docker service, then retry the installer. |
Docker Compose … is too old | Update Docker or Compose to v2.17 or later. |
Ollama
| Symptom or exact output | Remedy |
|---|---|
Ollama did not start | Inspect docker compose logs ollama privately; check memory, disk and Docker health. |
Installer
| Symptom or exact output | Remedy |
|---|---|
The relay token is empty or must have 32 to 512 characters | Copy the invitation's relay token without surrounding text. Do not show or paste it into support chat. |
That is the gyb_ invite code, not the relay token | You entered the invitation code. Rerun sh install.sh with the invitation's relay token; use the gyb_ code later in Register and publish. |
Installer stops with gyblos install: or FAIL | Correct the named cause, then rerun sh install.sh where you saved it. Existing files and identity are preserved. |
The image signature did not verify | Do not run that image or bypass the check. Download the installer again from https://gyblos.com/install.sh and report the image line through your invitation channel. |
Configuration
cd ~/gyblos-seller
docker compose run --rm seller gyblos config validate --config /config/gyblos.tomlUse the reported key path, such as offers[0].free.per_buyer_cap. After OK, run doctor if startup still
refuses the file. See the configuration reference for defaults and ranges.
| Code / symptom | Remedy |
|---|---|
FILE_NOT_FOUND from validation | Use the explicit container path above. Validator ignores GYBLOS_CONFIG when selecting its file. |
TOML_SYNTAX, UNKNOWN_KEY, WRONG_TYPE | Correct syntax, remove unknown keys or use the required type. Do not duplicate [discovery] or the same model offer. |
INVALID_CAP | Use positive integers; per-buyer cap cannot exceed the daily total. |
INVALID_LIMIT | Respect each capacity range and the connection × per-buyer rate constraint. |
INLINE_SECRET | Remove the credential from TOML; use a variable name and private environment file. Rotate an exposed credential through its issuer. |
RELAY_ONLY_CONFLICT | Remove the external address or turn relay-only off; consider all environment overrides too. |
SELLER_SETTING_UNSUPPORTED | Remove file-derived node.data_dir, node.rpc_url or node.payout_wallet; this runtime uses its existing home/role provisioning. |
SELLER_OFFERS_MISSING | Restore at least one supported offer. A schema-valid empty offer list cannot serve. |
SELLER_OFFER_MODEL_UNSUPPORTED, SELLER_OFFER_ENGINE_UNSUPPORTED, SELLER_OFFER_REASONING_UNSUPPORTED | Return to the supported local Qwen3 offer with reasoning off, or inspect plugin restrictions before using an advanced engine. |
SELLER_OFFER_API_KEY_MISSING, SELLER_OFFER_API_KEY_UNSAFE | Advanced providers need the correct nonempty variable inside the container; use a separate name that does not begin GYBLOS_ or name the relay token. |
MAINNET_UNSUPPORTED, SELLER_PAYMENT_ROLE_MISSING | Keep this installation on devnet with a free offer; paid/mainnet setup is not part of this onboarding. |
Connection
Engine
| Code / symptom | Remedy |
|---|---|
ENGINE_UNAVAILABLE, ENGINE_TIMEOUT | Check Ollama service health and that qwen3:0.6b is downloaded. Inspect Ollama logs privately. Keep the supplied loopback engine URL. |
| Seller fails after Ollama restarted | Run docker compose restart seller, then check status; both share a network namespace. |
Relay
| Code / symptom | Remedy |
|---|---|
SELLER_RELAY_OFFLINE | Check outbound internet access and whether the invitation token is correct. This means no relay answered in the startup window. |
CLOCK_SKEWED | Enable automatic time synchronization on the host; future-dated records can be rejected. |
If only the relay token needs replacement, stop the seller, open seller.env in a private local editor
and replace only the token value with the invitation's correct value. Preserve any provider credentials.
Recreate with docker compose up -d --force-recreate seller to load the changed environment. Never print
the file, put its contents on a command line or delete the data volume.
Publication
Registration
| Discovery code / observation | Remedy or interpretation |
|---|---|
DISCOVERY_IDENTITY_NOT_REGISTERED | Rerun in an interactive terminal for devnet enrollment. Review estimated cost and approval in the registration guide first; the owner needs devnet SOL. Preserve the invite, which can still expire. |
REGISTER_IDENTITY_UNAVAILABLE | Enrollment did not complete: read the missing-SOL, simulation or uncertain-result hint. Follow the registration guide before retrying. |
REGISTER_CANCELLED | You answered something other than yes or y: nothing was signed or sent. Run gyblos seller register again. |
DISCOVERY_INVITE_INVALID | Code is wrong, used or expired; request a replacement through the invitation channel. |
DISCOVERY_NODE_REVOKED | Contact Gyblos; do not generate another identity to bypass removal. |
DISCOVERY_RATE_LIMITED | Wait a minute before retrying registration. |
DISCOVERY_UNAVAILABLE | Try later or contact Gyblos. Check the configured index origin before submitting an invite. |
A registration rerun checks saved state and may resend the same previously approved transaction without a new prompt. Preserve all files and locks. Expiry alone does not prove no transaction or fee; partial/inconclusive state needs help. Read registration recovery limits before repeating the command. Never clear state to force another attempt.
Visibility
Work through Register and publish: confirm registration, publish = true,
recreation after the edit, then seller status --online. Confirm that you are querying the same index
where you registered and that at least one offer is ready.
| Discovery code / observation | Remedy or interpretation |
|---|---|
not in the first 2000 sellers | Search budget exhausted; not proof that you are absent. |
index unreachable | Listing state is unknown; resolve connectivity before drawing conclusions. |
Requests
The offer reserves input plus maximum output at admission. A request may exceed the remaining daily or per-buyer allowance even if some tokens remain. Capacity and distinct-buyer limits can also refuse requests. Review Models and offers; do not restart to bypass limits. A listing alone does not create demand, and a 24-hour receipt summary is not a quota balance.
Identity and recovery
Preserve the volume and ask for help. Do not delete a sequence lock, journal, role file or keys to make
checks pass. Do not rerun setup into another home or use docker compose down -v. No complete seller
restore is documented here; see Identity and private data.
Ask for help
Reply through the invitation channel with the relevant error code and these outputs:
cd ~/gyblos-seller
docker compose exec seller gyblos seller status
docker compose images sellerIf exec is unavailable, share the relevant doctor code instead. Review output before sending. Do not
send seller.env, invite codes, raw logs, environment dumps, docker inspect, receipts or volume contents.