AOSSIE-Org / AOSSIE-Org/DebateAI

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

Abierto
#145 3 comentarios 1 reacción 0 asignados Ver en GitHub
Lenguaje dominante
TypeScript
Estrellas
84
Forks
198
Merge medio
2 d 19 h
PR fusionados (30 d)
30

Descripción

## 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.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.