AOSSIE-Org / AOSSIE-Org/DebateAI

[BUG] App crashes due to unsafe access on null values from storage

未关闭
#145 3 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
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 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。