AOSSIE-Org / AOSSIE-Org/DebateAI
[BUG] App crashes due to unsafe access on null values from storage
- 主要语言
- TypeScript
- 星标
- 84
- 派生
- 198
- 平均合并
- 2 天 19 小时
- 30 天内合并 PR
- 30
描述
## Description:
The application crashes at runtime with the following error:
TypeError: Cannot read properties of null (reading 'length')
This occurs when the app attempts to access .length on a value retrieved from localStorage (or similar storage) that is null.
This commonly happens for new users / fresh sessions where expected keys are not yet present in storage.
## Steps to Reproduce
Open the app in a fresh browser session (clear localStorage / incognito).
Navigate through the app until storage cleanup or quote-related logic runs.
The app crashes with:
Cannot read properties of null (reading 'length')
## Expected Behavior
The app should safely handle missing or unset storage values and not crash.
## Actual Behavior
The app crashes because .length is accessed on a null value.
## Root Cause (Analysis)
Code assumes values from storage are always non-null, for example:
const value = localStorage.getItem(key);
if (value.length > 0) { ... } // crashes if value === null
However, localStorage.getItem() returns null if the key does not exist.
## Suggested Fix
Add defensive checks or defaults before accessing .length, for example:
const value = localStorage.getItem(key);
if (!value) return;
if (value.length > 0) {
...
}
or:
const value = JSON.parse(localStorage.getItem(key) ?? "[]");
## Impact
🚨 Causes hard crashes
🚨 Affects new users
🚨 Breaks core functionality
🚨 Generates excessive error reports (Sentry)
## Environment
Frontend: React + Vite
Browser: Any
Reproducible: Yes (100% on fresh storage)
## Additional Notes
This issue can be resolved by adding simple null guards and/or safe parsing when accessing storage values.
贡献指南
这个仓库没有索引到贡献指南
评估
这个 Issue 还没有评估数据。