….
Sign-in and project selection
| What you see | Meaning | Fix |
|---|---|---|
Not logged in. Run toloka login once to sign in through your browser on this machine: | No stored browser session or API key is available. | Run toloka login, or configure TOLOKA_API_KEY for noninteractive automation. |
No project selected. Run toloka project create for a new project, toloka project add for an existing project, or cd into a checkout. | The command cannot resolve a project. | Create, add, or switch a project, or pass --project-id. |
Training … was not found or is ambiguous. | A name matched zero or multiple Trainings. | Run toloka training list and pass the trg.… ID. |
Dataset and upload errors
| What you see | Meaning | Fix |
|---|---|---|
Dataset "…" does not exist in project … | The target dataset does not exist. | Run toloka dataset create <name>, then upload again. |
Another upload is already in progress. Complete or cancel it before starting a new one. | That dataset already has a pending upload. | Wait for it to finish, or upload to another dataset. |
The … selection contains … invalid example(s) | One or more selected training or validation rows violate the chat contract. | Dataset rows cannot be edited or removed. Upload corrected rows to a new dataset, run toloka training update <training> --dataset <new-dataset>, then calculate again. |
The … selection contains no valid examples | The selected split parts contain no usable rows. | Add valid rows or select the intended train parts, update the Training to a new slice, and calculate again. |
The … selection has … valid rows; supported range is 1-100000 | The selection is empty or too large. | Select between 1 and 100,000 valid rows; see Training limits. |
The training selection leaves … rows for training; batchSize … needs at least that many rows | The selected train parts have too few valid rows, after any fallback validation holdout. | Add train rows and freeze a new slice, or lower --batch-size. The smallest batch is 8. If the slice supplies no validation rows, the 10% holdout must also fit. |
The … selection has an example above … tokens; raise maxSequenceLength … or shorten the examples | An example exceeds the Training’s token budget. | Raise --max-sequence-length up to 16,384 or shorten the example. |
messages array, at least one user turn, and a final assistant turn with content. System turns must precede the conversation, repeated adjacent roles are rejected except for system and tool turns, and tool calls must have matching tool responses. See How Training works.
Dataset selection errors
These errors come from--dataset, --slice, --split-column, and --parts. Slices and split columns describes the commands named in the fixes.
| What you see | Meaning | Fix |
|---|---|---|
--dataset or --slice is required. | toloka training create received neither option. | Pass --dataset <dataset> to split the dataset and freeze a slice, or --slice <slice-id> for a ready slice. |
Pass --dataset or --slice, not both. | Both options were passed. | Keep one of them. |
Dataset … has no rows yet, so a slice would have nothing to freeze. Upload rows first. | The dataset is empty. | Upload rows, then run the command again. |
Slice … is …, not ready. | The slice passed with --slice is still being frozen or has failed. | Check it with toloka dataset slice show <slice-id>. Wait until it is ready, or freeze a new slice. |
Slice … failed: … | Freezing the slice failed for the reason shown. | Fix the reason, for example a --filter that matches no row, and run the command again. |
Stopped waiting for …; it keeps running. Check it with toloka …. | The command stopped waiting for the dataset’s fields, a split column, or a slice; the work continues. | Run the printed check command. When a slice that --dataset started is ready, pass it with --slice instead of --dataset. |
Dataset … has the split columns …. | The dataset has more than one split column, and the command named none. | Pass --split-column <name>. |
Dataset … has no field …, but its uploaded rows have one. | The split column to use exists only as a field of the uploaded rows. | Run toloka dataset fields add <dataset> <field> to use its values as parts, or pass --split-column <new-name> to create a new split column. |
Splitting column … failed: … | Filling the split column failed, for example because the --balance-by field has more than 1,000 distinct values. | Fix the cause and run toloka dataset split again. Rows that already have a part keep it. |
Column … is not a split column. | --split-column names an ordinary column. | Name a split column listed by toloka dataset columns <dataset>, or make one with toloka dataset split <dataset> --column <name>. |
Dataset … has no column …. | --split-column names no column of the slice’s dataset. | List the columns with toloka dataset columns <dataset>. |
Slice … freezes no split column, so nothing keeps test rows out of training. Split the dataset, then take a new slice | The slice was frozen before the dataset had a split column. | Run toloka dataset split <dataset>, freeze a new slice, and pass it with --slice. --dataset <dataset> does both. |
Slice … freezes the split columns …; pass splitFieldId to choose one | The slice freezes more than one split column. | Pass --split-column <name>. |
Slice … does not freeze split column … | --split-column names a split column created after the slice was frozen. | Freeze a new slice, or name a split column the slice freezes. |
Parts … of split column … have no train role | --parts names a part without the train role. | Pass only train parts. toloka dataset columns <dataset> lists each part’s roles. |
Split column … has no part with the train role, so it cannot be trained on | The chosen split column has no train part. | Choose another column with --split-column, or create one with toloka dataset split <dataset> --column <new-name>. |
Training … has no split slice to train on; update it with a sliceId of a slice that freezes a split column before you estimate or run it | The Training was created before Trainings read split slices. | Run toloka training update <training> --dataset <dataset>, or pass --slice <slice-id>. |
Model source and method errors
| What you see | Meaning | Fix |
|---|---|---|
Choose exactly one of --base-model and --model-version. | Both source flags were set, or neither was set. | Pass exactly one source. |
Training from a Model Version requires a LoRA adapter source | The selected Model Version contains full weights. | Use a Model Version produced by SFT, or pass a Base model. |
Gisting publishes a full model and supports the qwen3-4b and qwen3-8b Base Models; larger tiers exceed the Model Version size limits | The selected gisting source resolves to a larger Base model. | Use qwen3-4b, qwen3-8b, or an SFT adapter based on one of them. |
--prompt-file applies to gisting only. | A prompt file was passed to SFT. | Remove it, or create a gisting Training. |
--prompt-file is required for gisting. | A gisting Training has no prompt file. | Pass --prompt-file <path>. |
--lora-rank applies to SFT; gisting takes --gist-tokens. | A gisting Training received an SFT-only setting. | Use --gist-tokens. |
--gist-tokens applies to gisting; SFT takes --lora-rank. | An SFT Training received a gisting-only setting. | Use --lora-rank. |
Prompt-file errors
| What you see | Fix |
|---|---|
--prompt-file must point to a file. | Pass the path to a regular file. |
The gisting prompt file is empty. | Add non-whitespace prompt text. |
The gisting prompt file exceeds the 256 KiB limit. | Shorten the file to 256 KiB or less. |
The gisting prompt file must contain valid UTF-8 text. | Save it as UTF-8. |
prompt_changed | The file changed after it was uploaded and snapshotted. Create or update the Training with the intended file and calculate again. |
Cost-estimate errors
A blocked estimate begins with:Training cannot run with these inputs:
- <message> line to stderr. With --json, a blocked estimate writes nothing to stdout.
| What you see | Meaning | Fix |
|---|---|---|
This Training would take up to … hours on 1 GPU, which exceeds the 6-hour limit. | The predicted maximum training wall time is over six hours. | For SFT, choose qwen3-32b or qwen3-235b, or reduce rows or epochs. For gisting, reduce rows or epochs. |
This Training would take up to … hours on 8 GPUs, which exceeds the 6-hour limit. | The predicted maximum training wall time is over six hours even with eight GPUs. | Reduce rows or epochs. |
Training Cost Estimate changed; calculate it again | The Training or frozen input no longer matches the saved fingerprint. | Calculate a new estimate. |
Training Cost Estimate Input Set has expired | More than 24 hours passed since the estimate was requested. | Calculate again. |
Training already has 3 unconsumed Cost Estimate Input Sets | Three open estimates already exist. | Use one or wait for one to expire. |
Training inputs are not runnable: … | A saved estimate became blocked when the Training Run was created. | Fix the first reported issue and calculate again. |
Model Version naming errors
| What you see | Meaning | Fix |
|---|---|---|
A Model Version with this name already exists | A completed or active Training Run already uses the requested name in this Model. | Pass --version-name with a new name. |
Training Cost Estimate Input Set is already in use | That ready estimate already started a Training Run. | Calculate a new estimate. |
Blocked Training Runs
| Status | Meaning | Fix |
|---|---|---|
blocked, reason funds | The initial maximum-charge hold could not be placed. | Add funds and run toloka training resume <run-id>, or cancel. |
blocked, reason payment | The final charge could not be collected. | Add funds and resume before the payment deadline. Cancellation is unavailable. |
blocked, reason billing_review | Billing needs Toloka staff review. | Wait. Resume and cancel are unavailable. |
Training Run payment window expired means the seven-day payment window ended. The Training Run fails with payment_window_expired and cannot resume.
Training Run cannot be canceled while … means the Training Run has reached output validation, settlement, payment collection, or publication. Wait for its terminal state. A billing review must be resolved by an administrator.
Terminal failure codes
| Code | Meaning | Next action |
|---|---|---|
data_export_failed | The selected data could not be prepared. | Inspect the message, correct the data or split parts, update the Training to a new slice, and calculate a new estimate before starting another run. |
input_report_mismatch | Prepared inputs no longer match the validated report. | Calculate a fresh estimate and start again. |
billing_rejected | Billing rejected the hold or final charge. | Correct the team balance or billing issue, then start a new Training Run if the state is terminal. |
provider_failed | The platform could not complete training. | Inspect toloka training logs <run-id>. |
provider_timeout | Training timed out. | Inspect toloka training logs <run-id> for the timeout details before starting a new Training Run. |
invalid_provider_output | Produced files failed output validation. | Inspect the message. The run is not charged and publishes no Model Version. |
provider_output_changed | Produced files changed during validation. | Start a new Training Run. |
prompt_changed | The gisting prompt changed after upload. | Update the Training with the intended prompt and start again. |
payment_window_expired | Final payment was not completed before the deadline. | Add funds and start a new Training Run. |
failed or canceled Training Run cannot resume.