Skip to content

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

Description

@gemunet

🐛 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)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions