Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

JsonCacheInfoRepository: FormatException: Unexpected end of input (at character 1) ^

Abierto Apto para principiantes
#450 9 comentarios 8 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@bothyculture ya está trabajando en esto.

Desde el 4/5/2025.

  • #487 de @bothyculture — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
dart, flutter
Área
mobile

Línea de trabajo

Comienza en json_cache_info_repository.dart, en JsonCacheInfoRepository._readFile, alrededor de la línea 143, e inspecciona cómo un archivo JSON de base de datos vacío llega a jsonDecode. Reproduce o cubre el caso de un archivo vacío y, después, verifica que la inicialización se complete sin una FormatException, manteniendo la carga normal de JSON.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

🐛 Bug Report

occasionally this error is generated when initializing CacheManager with JsonCacheInfoRepository

Fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: FormatException: Unexpected end of input (at character 1)

^

       at .jsonDecode(dart:convert)
       at JsonCacheInfoRepository._readFile(json_cache_info_repository.dart:143)
       at JsonCacheInfoRepository.open(json_cache_info_repository.dart:40)
       at new CacheStore.<fn>(cache_store.dart:34)

This happens when the {databaseName}.json file is created but empty and jsonString = ""

JsonCacheInfoRepository.dart: _readFile()
final json = jsonDecode(jsonString) as List<dynamic>;

A possible solution would be to check that the file is not empty before decoding the json

    if (await file.exists() && await file.length() > 0) {
      try {
        final jsonString = await file.readAsString();
        final json = jsonDecode(jsonString) as List<dynamic>;

note: I don't know why the json file is empty and not with an empty list []

Expected behavior

no error

Configuration

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.16.1, on Microsoft Windows [Versi¢n 10.0.22631.3296], locale es-CL)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[√] Chrome - develop for the web
[√] Visual Studio - develop Windows apps (Visual Studio Build Tools 2022 17.8.2)
[√] Android Studio (version 2022.3)
[√] VS Code (version 1.87.2)
[√] Connected device (4 available)
[√] Network resources

• No issues found!

Version: 3.3.1

Platform:

  • 📱 iOS
  • 🤖 Android 13 (AP I33)
Lenguaje dominante
Dart
Estrellas
812
Forks
511
Merge medio
28 min
PR fusionados (30 d)
12

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Baseflow/flutter_cache_manager

Todos los issues de Baseflow/flutter_cache_manager

Issues similares

Más issues de Dart

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.