Skip to content

[Bug] Storage PutFileAsync/PutBytesAsync stops transfering bytes after exactly 5 minutes, throws "Firebase.Storage.StorageException: The operation retry limit has been exceeded" after exactly 5 more minutes #968

Closed
@TobiasWehrum

Description

@TobiasWehrum

[REQUIRED] Please fill in the following fields:

  • Unity editor version: 2022.3.17f1
  • Firebase Unity SDK version: 11.6.0
  • Source you installed the SDK: .unitypackage
  • Problematic Firebase Component: Storage
  • Other Firebase Components in use: Auth, Firestore, Functions
  • Additional SDKs you are using: Sentry, Cesium
  • Platform you are using the Unity editor on: Windows 10
  • Platform you are targeting: Desktop
  • Scripting Runtime: Mono
  • Pre-built SDK from the website or open-source from this repo: Pre-built SDK

[REQUIRED] Please describe the issue here:

I'm trying to upload a 423 MB video file with PutFileAsync while using a progress handler to show the upload progress.

After exactly 5 minutes the upload always seems to stop: The progress handler continues to be called, but BytesTransferred will keep the value it had at the 5 minute mark (instead of steadily progressing like before).

After exactly 5 more minutes PutFileAsync throws Firebase.Storage.StorageException: The operation retry limit has been exceeded.

If I try to upload anything else after that exception in the Unity Editor the whole Editor will freeze and has to be closed via Task manager.

If I try to upload anything else after that exception in a build, the app will either directly crash or will throw a System.ApplicationException: ret == ((((DWORD )0x00000000L) ) + 0 ) ---> System.ApplicationException: ret == ((((DWORD )0x00000000L) ) + 0 ) immediately.

This happens in the Unity Editor and in a desktop build on Windows 10 every single time I tested it. I also tested PutBytesAsync in the Unity Editor, and it has the exact same behaviour.

We also tested tested this in a build on another Windows 10 machine, and there too we got Firebase.Storage.StorageException: The operation retry limit has been exceeded after pretty much exactly 10 minutes (and then the System.ApplicationException if we tried to upload again).

If I set MaxDownloadRetryTime, MaxUploadRetryTime and MaxOperationRetryTime to 1 second, Firebase.Storage.StorageException: The operation retry limit has been exceeded will be thrown right after BytesTransferred stops increasing, further suggesting that something goes wrong there and that it starts retrying at that point.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions