User process presets: undocumented format, silent import failures, misleading errors #834

Closed
opened 2026-04-05 16:32:20 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @kcjonson on 2/9/2026

Is there an existing issue for this problem?

  • I have searched the existing issues

OrcaSlicer Version

2.3.1

Operating System (OS)

Windows

OS Version

Windows 11, 24H2

Additional system information

No response

Printer

Qidi Plus4

How to reproduce

  1. Export any existing system process preset (e.g., "0.20mm Standard @Qidi XPlus4") by copying its JSON from %APPDATA%\OrcaSlicer\system\
  2. Modify some settings (e.g., change wall_loops to 3)
  3. Save as a new JSON file
  4. Attempt to import via File → Import → Import Configs
  5. Observe error: "You need to import the corresponding printer first" — even though the printer is already configured and selected
  6. Try variations: set "compatible_printers": [], set it to your printer's custom instance name, set it to the system printer preset name — all fail
  7. Try placing the file manually in user/default/process/base/ (mirroring where filament presets live in filament/base/) — not visible in UI
  8. Try placing in user/default/process/ — still not visible

The ONLY way to discover the correct format is to create a preset manually inside Orca (modify existing → save as new), then inspect the generated JSON on disk.

Actual results

User process presets require a completely different JSON format from system presets, which is documented nowhere.

System preset format (does NOT work as user preset):

{
    "type": "process",
    "name": "0.20mm Standard @Qidi XPlus4",
    "inherits": "fdm_process_qidi_x3_common",
    "from": "system",
    "setting_id": "GP004",
    "compatible_printers": ["Qidi X-Plus 4 0.4 nozzle"],
    "layer_height": "0.2",
    "wall_loops": "2"
}

User preset format (the ONLY format that works):

{
    "from": "User",
    "inherits": "0.20mm Standard @Qidi XPlus4",
    "is_custom_defined": "0",
    "name": "My Custom Preset",
    "print_settings_id": "My Custom Preset",
    "version": "2.3.1.10",
    "wall_loops": "3"
}

Undocumented requirements:

  • No type, compatible_printers, setting_id, or instantiation fields
  • Must inherit from an existing system preset — "inherits": "" with all settings is rejected
  • Only the diff (changed values) should be included, not all settings
  • Must include version, print_settings_id, and is_custom_defined
  • Must live in user/default/process/ directly — NOT user/default/process/base/
  • Requires a companion .info file

Summary of failed attempts:

What I tried Result
Full standalone JSON, "inherits": "" "Import corresponding printer first"
"compatible_printers": ["MyPrinterName"] (instance name) Same error
"compatible_printers": ["Qidi X-Plus 4 0.4 nozzle"] (system name) Same error
"compatible_printers": [] Won't import
Correct format in process/base/ Not visible in UI
Correct format in process/ Works

Expected results

  • File → Import → Import Configs accepts a process preset JSON containing all settings fields (standalone/full config)
  • Setting "compatible_printers": [] makes a preset available to all printers
  • Failed imports provide specific error messages explaining what's wrong (e.g., "unrecognized inherits value", "missing version field", "unexpected compatible_printers field")
  • The user preset format is documented somewhere — the wiki's "How to create profiles" page, a README, or in-app help
  • Folder structure is consistent (filament user presets live in filament/base/, so process presets should too)

Project file & Debug log uploads

log.zip

empty_project.zip

Checklist of files to include

  • Log file
  • Project file

Anything else?

Related issues:

  • #10939 — Cannot export user process presets (same export bug encountered during this investigation)
  • #7880 — Request for universal process presets not tied to inheritance; user describes the same workaround of manually editing JSON
  • #2278 — User presets forcibly tied to system presets
  • Discussion #7257 — User presets missing; community members discovering compatible_printers issues by trial and error
  • Discussion #2098 — Imported process configs not showing up; solved by matching compatible_printers string exactly

Suggestions:

  1. Document the user preset format on the wiki (the "How to create profiles" page covers system/vendor profiles but not user presets)
  2. Import should accept full/standalone configs and auto-diff against a parent
  3. Surface meaningful error messages instead of "import corresponding printer first"
  4. Make folder structure consistent between filament and process user presets
  5. Consider supporting `"
*Originally created by @kcjonson on 2/9/2026* ### Is there an existing issue for this problem? - [x] I have searched the existing issues ### OrcaSlicer Version 2.3.1 ### Operating System (OS) Windows ### OS Version Windows 11, 24H2 ### Additional system information _No response_ ### Printer Qidi Plus4 ### How to reproduce 1. Export any existing system process preset (e.g., "0.20mm Standard @Qidi XPlus4") by copying its JSON from `%APPDATA%\OrcaSlicer\system\` 2. Modify some settings (e.g., change `wall_loops` to `3`) 3. Save as a new JSON file 4. Attempt to import via File → Import → Import Configs 5. Observe error: "You need to import the corresponding printer first" — even though the printer is already configured and selected 6. Try variations: set `"compatible_printers": []`, set it to your printer's custom instance name, set it to the system printer preset name — all fail 7. Try placing the file manually in `user/default/process/base/` (mirroring where filament presets live in `filament/base/`) — not visible in UI 8. Try placing in `user/default/process/` — still not visible The ONLY way to discover the correct format is to create a preset manually inside Orca (modify existing → save as new), then inspect the generated JSON on disk. ### Actual results User process presets require a completely different JSON format from system presets, which is documented nowhere. **System preset format (does NOT work as user preset):** ```json { "type": "process", "name": "0.20mm Standard @Qidi XPlus4", "inherits": "fdm_process_qidi_x3_common", "from": "system", "setting_id": "GP004", "compatible_printers": ["Qidi X-Plus 4 0.4 nozzle"], "layer_height": "0.2", "wall_loops": "2" } ``` **User preset format (the ONLY format that works):** ```json { "from": "User", "inherits": "0.20mm Standard @Qidi XPlus4", "is_custom_defined": "0", "name": "My Custom Preset", "print_settings_id": "My Custom Preset", "version": "2.3.1.10", "wall_loops": "3" } ``` **Undocumented requirements:** - No `type`, `compatible_printers`, `setting_id`, or `instantiation` fields - Must inherit from an existing system preset — `"inherits": ""` with all settings is rejected - Only the diff (changed values) should be included, not all settings - Must include `version`, `print_settings_id`, and `is_custom_defined` - Must live in `user/default/process/` directly — NOT `user/default/process/base/` - Requires a companion `.info` file **Summary of failed attempts:** | What I tried | Result | |---|---| | Full standalone JSON, `"inherits": ""` | "Import corresponding printer first" | | `"compatible_printers": ["MyPrinterName"]` (instance name) | Same error | | `"compatible_printers": ["Qidi X-Plus 4 0.4 nozzle"]` (system name) | Same error | | `"compatible_printers": []` | Won't import | | Correct format in `process/base/` | Not visible in UI | | Correct format in `process/` | ✅ Works | ### Expected results - File → Import → Import Configs accepts a process preset JSON containing all settings fields (standalone/full config) - Setting `"compatible_printers": []` makes a preset available to all printers - Failed imports provide specific error messages explaining what's wrong (e.g., "unrecognized inherits value", "missing version field", "unexpected compatible_printers field") - The user preset format is documented somewhere — the wiki's "How to create profiles" page, a README, or in-app help - Folder structure is consistent (filament user presets live in `filament/base/`, so process presets should too) ### Project file & Debug log uploads [log.zip](https://github.com/user-attachments/files/25190090/log.zip) [empty_project.zip](https://github.com/user-attachments/files/25190091/empty_project.zip) ### Checklist of files to include - [x] Log file - [x] Project file ### Anything else? **Related issues:** - #10939 — Cannot export user process presets (same export bug encountered during this investigation) - #7880 — Request for universal process presets not tied to inheritance; user describes the same workaround of manually editing JSON - #2278 — User presets forcibly tied to system presets - Discussion #7257 — User presets missing; community members discovering `compatible_printers` issues by trial and error - Discussion #2098 — Imported process configs not showing up; solved by matching `compatible_printers` string exactly **Suggestions:** 1. Document the user preset format on the wiki (the "How to create profiles" page covers system/vendor profiles but not user presets) 2. Import should accept full/standalone configs and auto-diff against a parent 3. Surface meaningful error messages instead of "import corresponding printer first" 4. Make folder structure consistent between filament and process user presets 5. Consider supporting `"
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#834