Title: [Bug] Scheduled tasks can fail with “No model configured” when relying on default model; model resolution is inconsistent across create/save/run paths
Type: Bug
Summary Scheduled tasks / cron jobs in Alma may fail at execution time with the error No model configured, even when the user already has a valid default model configured in Alma and the task appears otherwise valid.
This suggests the scheduler pipeline does not consistently resolve or persist the model across task creation, editing, persistence, and execution.
Environment
App: Alma 0.0.724
OS: macOS 26.3.1
Arch: arm64
Privacy / Redaction
Provider names, account identifiers, local paths, thread IDs, and any credentials have been redacted.
No secrets are included in this report.
Severity Medium-High
Why this matters This is not just a UX issue:
A scheduled task can be created/saved successfully but still fail only at runtime.
Failure happens in unattended/background execution, so users may assume automation is working when it is not.
The error is generic and appears too late, which makes diagnosis difficult.
It breaks trust in scheduled workflows such as daily reports, monitoring, and recurring assistant tasks.
Observed behavior A scheduled task that should inherit or use an available model fails during execution with: No model configured
In testing, manually forcing a model into the task payload can make the task run again, which strongly suggests the model resolution / persistence logic is inconsistent.
Expected behavior A scheduled task should never reach runtime with an unresolved model if:
the task explicitly specifies a model, or
Alma has a valid default model that is intended to be inherited.
If neither is available, Alma should block save/enable at configuration time with a clear validation error, instead of allowing a delayed runtime failure.
Reproduction steps
Configure Alma with a valid default chat/model setup.
Create or update a scheduled task / cron-style task.
Do not explicitly hardcode a model into the task payload, and instead rely on Alma’s current/default model behavior.
Wait for the task to execute automatically.
Observe that the run may fail with: No model configured
Likely variants
Create task under one model context, then later change default model.
Edit an existing scheduled task from the UI without re-binding the model explicitly.
Task metadata and execution payload do not carry the same model field or source of truth.
Actual result
Task is accepted/saved.
Runtime execution fails with No model configured.
Expected result
The task should inherit a valid model deterministically, or
Alma should reject/disable the task before runtime with a clear validation message.
Suspected root cause The bug appears to be a model-resolution inconsistency between one or more of these stages:
Task creation
Task editing
Task persistence/serialization
Scheduler runtime execution
Most likely failure modes:
The UI stores model information in one field, but the executor reads another.
The scheduler expects an explicit task-level model and does not reliably fall back to the app/workspace default model.
The saved payload is not normalized, so model information can exist in one path but be absent in the runtime path.
Validation is deferred until execution instead of enforced at save/enable time.
Design / implementation concern The installed macOS app is packaged as a bundled app.asar build, so field-level hotfixing and verification directly inside Alma.app is difficult and brittle in production installs. Even if a local patch is attempted, it is not a reliable or supportable fix path for users.
That is not the primary bug, but it increases support/debug cost significantly:
runtime investigation is harder,
source of truth is harder to trace from the packaged app,
users cannot reasonably self-recover.
Recommended fix
Introduce a single canonical model-resolution function for scheduled tasks:
explicit task model
task payload model
workspace/thread-level model
current default model
otherwise fail validation before scheduling
Normalize model fields on save/edit so the executor and UI read the same structure.
Validate scheduled tasks at creation/update time:
if no resolvable model exists, prevent enabling/saving and show a clear message
Add runtime diagnostics:
log which resolution layer was attempted
distinguish “task missing model” vs “default model missing” vs “provider/model unavailable”
Add regression tests covering:
new task with explicit model
new task inheriting default model
edited task after default model changes
migrated/legacy scheduled task records without explicit model fields
Suggested acceptance criteria
A scheduled task with a valid default model no longer fails with No model configured.
Save/edit/runtime all resolve model through the same logic.
If no model is resolvable, the UI blocks configuration before runtime.
Existing scheduled tasks created under older versions are either migrated or handled gracefully.
Workarounds observed Temporary workaround:
explicitly write/bind the model into the scheduled task payload
Why workaround is insufficient:
fragile
easy to regress on edit
not discoverable
unsuitable for normal users
Requested action Please treat this as a scheduler reliability bug rather than a simple configuration mistake. The product should guarantee deterministic model resolution for unattended tasks and fail early when configuration is invalid.
Please authenticate to join the conversation.
In Review
Feature Request
About 4 hours ago

Grep
Get notified by email when there are changes.
In Review
Feature Request
About 4 hours ago

Grep
Get notified by email when there are changes.