Repository navigation
Closed
Closed
Copy link
Labels
P3Issues that are less important to the Flutter projectIssues that are less important to the Flutter projectc: fatal crashCrashes that terminate the processCrashes that terminate the processfound in release: 1.22Found to occur in 1.22Found to occur in 1.22t: xcode"xcodebuild" on iOS and general Xcode project management"xcodebuild" on iOS and general Xcode project managementteam-toolOwned by Flutter Tool teamOwned by Flutter Tool teamtoolAffects the "flutter" command-line tool. See also t: labels.Affects the "flutter" command-line tool. See also t: labels.tool-still-validIssues that have been deemed still valid as part of the Flutter Tools issue cleanup initiative.Issues that have been deemed still valid as part of the Flutter Tools issue cleanup initiative.triaged-toolTriaged by Flutter Tool teamTriaged by Flutter Tool team
Description
Currently this will crash the tool with:
Thread 0 main threadFileSystemException: FileSystemException: Creation failed, path = '/.dart_tool' (OS Error: Read-only file system, errno = 30)
at _Directory.createSync(directory_impl.dart:133)
at _Directory.createSync(directory_impl.dart:128)
at _Directory.createSync(directory_impl.dart:128)
at ForwardingDirectory.createSync(forwarding_directory.dart:20)
at ErrorHandlingDirectory.createSync.<anonymous closure>(error_handling_io.dart:419)
at _runSync(error_handling_io.dart:573)
at ErrorHandlingDirectory.createSync(error_handling_io.dart:418)
at FlutterBuildSystem.build(build_system.dart:571)
at AssembleCommand.runCommand(assemble.dart:318)
at FlutterCommand.verifyThenRunCommand(flutter_command.dart:1192)
at <asynchronous gap>(async)
at FlutterCommand.run.<anonymous closure>(flutter_command.dart:1043)
at <asynchronous gap>(async)
at AppContext.run.<anonymous closure>(context.dart:150)
at <asynchronous gap>(async)
at CommandRunner.runCommand(command_runner.dart:196)
at <asynchronous gap>(async)
at FlutterCommandRunner.runCommand.<anonymous closure>(flutter_command_runner.dart:284)
at <asynchronous gap>(async)
at AppContext.run.<anonymous closure>(context.dart:150)
at <asynchronous gap>(async)
at FlutterCommandRunner.runCommand(flutter_command_runner.dart:232)
at <asynchronous gap>(async)
at run.<anonymous closure>.<anonymous closure>(runner.dart:62)
at <asynchronous gap>(async)
at AppContext.run.<anonymous closure>(context.dart:150)
at <asynchronous gap>(async)
at main(executable.dart:91)
at <asynchronous gap>(async)
/cc @jonahwilliams
Metadata
Metadata
Assignees
Labels
P3Issues that are less important to the Flutter projectIssues that are less important to the Flutter projectc: fatal crashCrashes that terminate the processCrashes that terminate the processfound in release: 1.22Found to occur in 1.22Found to occur in 1.22t: xcode"xcodebuild" on iOS and general Xcode project management"xcodebuild" on iOS and general Xcode project managementteam-toolOwned by Flutter Tool teamOwned by Flutter Tool teamtoolAffects the "flutter" command-line tool. See also t: labels.Affects the "flutter" command-line tool. See also t: labels.tool-still-validIssues that have been deemed still valid as part of the Flutter Tools issue cleanup initiative.Issues that have been deemed still valid as part of the Flutter Tools issue cleanup initiative.triaged-toolTriaged by Flutter Tool teamTriaged by Flutter Tool team
Activity
jonahwilliams commentedon May 20, 2021
Looks like we add the
/ourselves from BUILD_PRODUCTS_DIR, https://github.com/flutter/flutter/blob/master/packages/flutter_tools/bin/xcode_backend.sh#L179But this can happen if that is empty.
jmagman commentedon May 20, 2021
jonahwilliams commentedon May 20, 2021
Not sure why we're creating the .dart_tool directory, need to check if we're assuming that this is the project directory for some reason
matanlurey commentedon Jul 10, 2025
@bkonyi 👁️
bkonyi commentedon Jul 10, 2025
I don't think this can happen anymore, at least not from
xcode_backend.shas described in #83053 (comment).However, I think we can handle this better in the future by handling
EROFSinerror_handling_io.dart.7 remaining items
flutter-triage-bot commentedon Jun 9, 2026
This issue is assigned to @bkonyi but has had no recent status updates. Please consider unassigning this issue if it is not going to be addressed in the near future. This allows people to have a clearer picture of what work is actually planned. Thanks!
flutter-triage-bot commentedon Aug 25, 2026
This issue was assigned to @bkonyi but has had no status updates in a long time. To remove any ambiguity about whether the issue is being worked on, the assignee was removed.
[flutter_tools] Gracefully handle EROFS and write-protected file syst…
github-actions commentedon Sep 23, 2026
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.