Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Fatal Error/App Crashes when clicking on Schedules and certain accounts #3954

Closed
2 tasks done
ExclamatoryQuestion opened this issue Dec 9, 2024 · 10 comments
Closed
2 tasks done
Labels
bug Something isn't working

Comments

@ExclamatoryQuestion
Copy link

Verified issue does not already exist?

  • I have searched and found no existing issue
  • I will be providing steps how to reproduce the bug (in most cases this will also mean uploading a demo budget file)

What happened?

When I click on the Schedules link in the sidebar or on certain accounts (which, IIRC, are accounts that have schedules linked to them, but I cannot verify), the app crashes. I receive this error:

TypeError: Cannot read properties of null (reading 'num1') at IC (app://actual/static/js/index.rtiWlUvs.js:98:43758) at app://actual/static/js/index.rtiWlUvs.js:98:123249 at Array.map () at app://actual/static/js/index.rtiWlUvs.js:98:123180 at Object.aM [as useMemo] (app://actual/static/js/index.rtiWlUvs.js:57:23922) at Ye.useMemo (app://actual/static/js/index.rtiWlUvs.js:10:6208) at KBe (app://actual/static/js/index.rtiWlUvs.js:98:123141) at v (app://actual/static/js/useAccountPreviewTransactions.mBtGX4u_.chunk.js:1:117) at Jo (app://actual/static/js/wide.0jCMk_7B.chunk.js:1:89660) at kk (app://actual/static/js/index.rtiWlUvs.js:57:19539)

On Discord, I saw a similar error under the Support thread and the answer was to resave the schedules that had a zero value, but I can't try that because clicking on Schedules causes the app to crash. The app doesn't crash when I click on some of my accounts, but I suspect that is because I don't have any schedules associated with those accounts. My most used accounts do; therefore I can't use Actual to input any transactions.

I use the Windows app, but encounter the issue when I access my budget using the web via Chrome, Brave, and Firefox.

Where are you hosting Actual?

Fly.io

What browsers are you seeing the problem on?

Desktop App (Electron)

Operating System

Windows 10

@ExclamatoryQuestion ExclamatoryQuestion added the bug Something isn't working label Dec 9, 2024
@MatissJanis
Copy link
Member

👋 How can we reproduce the issue?

@ExclamatoryQuestion
Copy link
Author

I'm not very technical back-end wise; I couldn't post my issue on Github at all without clicking the box that I could replicate the issue. I have no idea what is going on and I'm just trying to see if it is possible to recover my budget or if it is 100% borked.

I suspect the issue has something to do with schedules but I don't know what because the app crashes as soon as I click the schedules link or (I believe) accounts that have schedules linked.

@ExclamatoryQuestion
Copy link
Author

This is the discord thread I referenced earlier that seems to have a similar issue.
https://discord.com/channels/937901803608096828/1309975044608491563

@matt-fidd
Copy link
Contributor

Hi! Can you try exporting your budget and importing into https://deploy-preview-3958.demo.actualbudget.org/ please?
All data will stay on your device so no one will be able to see any of your information.

Hopefully you should be able to use the schedules page on there.

@matt-fidd
Copy link
Contributor

For reference, I traced the issue back to:

const avg = (amount.num1 + amount.num2) / 2;

Called by

const scheduleTransactions = useMemo(() => {
if (isSchedulesLoading) {
return [];
}
// Kick off an async rules application
const schedulesForPreview = schedules.filter(s =>
isForPreview(s, statuses),
);
return schedulesForPreview.map(schedule => ({
id: 'preview/' + schedule.id,
payee: schedule._payee,
account: schedule._account,
amount: getScheduledAmount(schedule._amount),
date: schedule.next_date,
schedule: schedule.id,
}));
}, [isSchedulesLoading, schedules, statuses]);

@ExclamatoryQuestion
Copy link
Author

Hi! Can you try exporting your budget and importing into https://deploy-preview-3958.demo.actualbudget.org/ please? All data will stay on your device so no one will be able to see any of your information.

Hopefully you should be able to use the schedules page on there.

Thank you! This worked. I was able to resave all my schedules before exporting the new budget file. My budget no longer crashes when I click on schedules or any of my accounts. Thanks again.

@matt-fidd
Copy link
Contributor

No problem, glad it worked.

Did you import from YNAB?

@MatissJanis
Copy link
Member

For what it's worth: I'm currently working on refactoring the schedules component (ScheduleDetails) to TypeScript. And with that - patching various issues that are spotted when the typechecker is added. So that should hopefully resolve the issue for other folks too experiencing this bug 🤞

@ExclamatoryQuestion
Copy link
Author

No problem, glad it worked.

Did you import from YNAB?

Yes, from YNAB4 about 18 months ago or so. But most of the schedules with a zero value were created after I imported.

@matt-fidd
Copy link
Contributor

@MatissJanis a Discord user has just provided the steps to reproduce:

I ask because I ran into this same error after I had deleted the Amount condition on one of the schedules through the Rules table. When I went back to Rules (not Schedules) and added a 0.00 amount condition back, it resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants