🔧 Troubleshooting
Common issues and how to fix them.
Student Issues
Work not saving
Symptom: Typed work disappears after refresh.
Solution:
- Work auto-saves every 5 seconds - wait a moment
- Check if browser allows localStorage (Settings → Privacy)
- Don't use incognito/private mode
- Try a different browser
Submit button not working
Symptom: Clicking Submit does nothing.
Solution:
- Make sure all reflection questions are filled in
- Check word count meets minimum (if applicable)
- Refresh the page and try again
- Check browser console for JavaScript errors
Drawing not appearing
Symptom: Canvas is blank or drawings don't show.
Solution:
- Make sure you're in "Draw" mode (not Erase)
- Check that a color is selected
- Try refreshing the page
- Use Chrome or Edge (best canvas support)
Teacher Issues
Wrong PIN / Can't log in
Symptom: PIN rejected or forgot PIN.
Solution:
- Default PIN is
1234 - Check if Caps Lock is off
- To reset: Open browser console (F12), type:
localStorage.removeItem('teacherPin') - Refresh and use default PIN
Getting logged out on your own
Symptom: You return to the site or reopen the installed app and it asks you to log in again, even though you never clicked Log Out.
Solution: This should no longer happen. Sessions have no expiry and there is no inactivity timer, so a login survives closing the browser, closing the app, and long idle periods. If you are still being signed out:
- Check that the browser is not set to clear site data on exit, and that you are not browsing in a private or incognito window. Both wipe the saved login.
- Reload the page once so the installed app picks up the current version, then log in again.
- Remember each device stores its own login, so signing in on the laptop does not sign you in on the phone.
App opens on the landing or login page
Symptom: The installed app launches on the Our Homeschool landing page, or on the login form, even though you never logged out.
Solution: Every entry point now checks for a session first and sends you to your last page, so this should not happen. If it does:
- Tap Diagnostics at the bottom of the card. If Session role reads a role rather than "(no session)", the session is fine and it is the routing to look at. If it reads "(no session)", the launch trail shows whether a Log Out cleared it and which page called for it.
- An app installed before this change may have captured the landing page as its start URL. Delete it from the home screen and reinstall from the site, which picks up the correct start page and scope.
- A private or incognito window, or a browser set to clear site data on exit, wipes the saved login on every close.
App reopens on the student picker
Symptom: The installed app launches on Who's Learning Today rather than the page you were last on, and Back to Login looks like the only way out.
Solution: The app records the last page you were on and reopens there. If it does not:
- Use the Teacher link beside Back to Login to get back to the teacher side without re-entering your PIN.
- A first launch after logging out has nothing recorded yet, so it lands on the family picker by design. Visit any page once and the next launch returns there.
- The recorded page is dropped if it can no longer be opened, for instance a link to a student who was removed. The app falls back to the family picker rather than looping.
Submissions not appearing
Symptom: Pending tab is empty but Lucas submitted work.
Solution:
- Refresh the page (F5)
- Check the "All" tab to see all submissions
- Verify Lucas actually clicked Submit (check his notifications)
- Check browser console for errors
Grade not saving
Symptom: Click "Give Final Grade" but nothing happens.
Solution:
- Make sure a grade is selected from dropdown
- Check browser console for errors
- Try refreshing and grading again
Badge counts wrong
Symptom: Tab badges show incorrect numbers.
Solution:
- Refresh the page (F5)
- Badges update automatically after actions
Curriculum Calendar Issues
"Unable to load calendar data"
Symptom: Calendar page shows error.
Solution:
- Start the server:
npm startin Personal-Productivity folder - Check server is running on port 3000
- Test API: visit
http://localhost:3000/api/health - Check database connection in
.env.local
Port 3000 already in use
Symptom: Server won't start, port conflict.
Solution:
taskkill /F /IM node.exe
npm start
No assignments showing
Symptom: Week loads but days are empty.
Solution:
- Check that week has assignments in database
- Verify database seed scripts ran correctly
- Check browser console for API errors
Data Issues
Reset all data (nuclear option)
Warning: This deletes ALL submissions, drafts, and settings!
// In browser console (F12)
localStorage.clear()
location.reload()
Export data for backup
// In browser console
console.log(JSON.stringify(localStorage, null, 2))
Copy the output and save to a file.
View specific data
// Submissions
JSON.parse(localStorage.getItem('studentSubmissions'))
// Student notifications
JSON.parse(localStorage.getItem('userNotifications'))
// Teacher notifications
JSON.parse(localStorage.getItem('teacherNotifications'))
// Drafts
JSON.parse(localStorage.getItem('assignmentDrafts'))
Browser Issues
Page looks broken
Solution:
- Hard refresh:
Ctrl + Shift + R - Clear browser cache
- Try a different browser
- Check all CSS files loaded (Network tab in DevTools)
JavaScript not working
Solution:
- Check browser console (F12) for errors
- Ensure JavaScript is enabled in browser
- Disable browser extensions that might interfere
- Check all script files loaded (Network tab)
Recommended browsers
- Best: Chrome, Edge
- Good: Firefox
- Not tested: Safari, Internet Explorer
Getting More Help
If these solutions don't work:
- Check browser console (F12 → Console tab) for error messages
- Take a screenshot of any error
- Note what you were doing when the problem happened
- Ask Claude Chat for help with the specific error message