actualbudget/actual · error · APIError
Date can not be found. Schedules can not be created without
Error message
Date can not be found. Schedules can not be created without a date there is a bug here
What it means
Schedules require a date condition; the update handler only overwrites the date value if a 'date' condition already exists. If it is missing (dateIndex === -1), the APIError declares this a bug, since schedules cannot legitimately exist without a date condition.
Source
Thrown at packages/loot-core/src/server/api.ts:1059
throw APIError(`Ammount can not be found. There is a bug here`);
}
break;
}
case 'amount': {
if (amountIndex !== -1) {
sched._conditions[amountIndex].value = value;
conditionsUpdated = true;
} else {
throw APIError(`Ammount can not be found. There is a bug here`);
}
break;
}
case 'date': {
if (dateIndex !== -1) {
sched._conditions[dateIndex].value = value;
conditionsUpdated = true;
} else {
throw APIError(
`Date can not be found. Schedules can not be created without a date there is a bug here`,
);
}
break;
}
default: {
throw APIError(`Unhandled field: ${typedKey}`);
}
}
}
if (conditionsUpdated) {
return handlers['schedule/update']({
schedule: {
id: sched.id,
posts_transaction: sched.posts_transaction,
name: sched.name,
},View on GitHub (pinned to d4334cb6e6)
Solutions
- Delete and recreate the schedule with a valid date condition.
- Add a date condition to the schedule through the rules/conditions API before updating.
- Check sync/import integrity if multiple schedules are missing conditions.
Defensive patterns
Strategy: try-catch
Validate before calling
const sched = await actual.getSchedule(id);
if (!sched._conditions || !sched._conditions.some(c => c.field === 'date')) {
throw new Error('Schedule is corrupt: no date condition; recreate it');
} Try / catch
try {
await actual.updateSchedule(id, { date: '2026-09-01' });
} catch (e) {
if (String(e.message).includes('Date can not be found')) {
// schedule is corrupt: delete and recreate
} else throw e;
} Prevention
- Always create schedules with a date condition
- Audit schedules after imports/restores for missing conditions
- Recreate instead of patching schedules missing invariants
When it happens
Trigger: Updating fields.date on a schedule whose _conditions array has no 'date' field — only possible when the schedule data is corrupt, hand-edited, or came from an abnormal import path.
Common situations: Restored or partially-synced budgets where conditions were lost; schedules modified directly via low-level rules APIs bypassing creation invariants.
Related errors
- Invalid recurring date config
- Ammount can not be found. There is a bug here
- TrieNode for key ${k} could not be found
- Unsupported schedule status for tooltip: ${scheduleStatus}
- Schedule not found: ${id}
AI-assisted analysis of actualbudget/actual@d4334cb6e6 (2026-08-29).
Data as JSON: /api/errors/5c8af6b20eea221a.
Report an issue: GitHub.