mogol / flutter_secure_storage

A Flutter plugin to store data in secure storage
https://pub.dartlang.org/packages/flutter_secure_storage
BSD 3-Clause "New" or "Revised" License
1.12k stars 368 forks source link

PathAccessException: The process cannot access the file because it is being used by another process (Windows only) after breaking changes 9.0.0 #634

Open stan-at-work opened 12 months ago

stan-at-work commented 12 months ago

ā—

After I updated to version 9.0.0, I randomly got an error saying: 'The process cannot access the file because it is being used by another process.'

This only happened after I upgraded to version 9.0.0.

I investigated the issue and came to the conclusion that it comes down to this.

If a file wants to read the same key at the same time as another file is writing to the same key, then I get this error.

I fixed this by switching back to the previous stable version.

I suggest updating the readme to alert users of this breaking issue.

This error also corrupts the .dat file, so all your secure storage is corrupted and unusable.

The error:

flutter: Failed to decrypt data: Error 0x00000057: Failure on CryptUnprotectData()
Delete corrupt file: c:\users\USER\appdata\roaming\com.example\APPNAME\flutter_secure_storage.dat
flutter: error on refresh token: PathAccessException: Cannot delete file, path = 'c:\users\USER\appdata\roaming\com.example\APPNAME\flutter_secure_storage.dat' (OS Error: The process cannot access the file because it is being used by another process.
flutter: , errno = 32) - stack: #0   _checkForErrorResponse (dart:io/common.dart:55:9)
flutter: #1   _File._delete.<anonymous closure> (dart:io/file_impl.dart:315:7)
flutter: #2   _rootRunUnary (dart:async/zone.dart:1407:47)
flutter: #3   _CustomZone.runUnary (dart:async/zone.dart:1308:19)
flutter: <asynchronous suspension>
flutter: #4   DpapiJsonFileMapStorage.load
flutter_secure_storage_windows_ffi.dart:267
flutter: <asynchronous suspension>
flutter: #5   FlutterSecureStorageWindows.write
flutter_secure_storage_windows_ffi.dart:142
flutter: <asynchronous suspension>
flutter: #6   CoreAuthRepo.toggleLoginEnvironmentInSecureStorage
core_auth_repo.dart:127
flutter: <asynchronous suspension>
flutter: #7   CoreAuthBloc._tryAutoLogin
core_auth_bloc.dart:113
flutter: <asynchronous suspension>
flutter: #8   Bloc.on.<anonymous closure>.handleEvent
bloc.dart:229
flutter: <asynchronous suspension>
flutter:

Greetings. Please fix ;-) šŸ‘

ReinRaus commented 11 months ago

Code example: https://github.com/mogol/flutter_secure_storage/issues/603#issuecomment-1769261086

stan-at-work commented 11 months ago

@mogol

KristijanMitrik commented 5 months ago

Any updates on this issue @mogol ?

stan-at-work commented 5 months ago

Any updates on this issue @mogol ?

You can use the previous version.

xenSlayer commented 3 months ago

any update on this issue?

xenSlayer commented 3 months ago

@stan-at-work which previous version are you using to avoid this issue?

stan-at-work commented 3 months ago

@stan-at-work which previous version are you using to avoid this issue?

I'm using flutter_secure_storage: ^8.1.0

rodrigoreal commented 3 weeks ago

any update on this issue?

stan-at-work commented 3 weeks ago

Nope