Symptom
Frontend CI (Build Windows executable) fails on main since the 2026-07-13 push:
CMake Error: Problem with archive_write_header(): Cannot extract through symlink
\?\D:\a\polyphony\polyphony\apps\flutter_client\windows\flutter\ephemeral\.plugin_symlinks\flutter_webrtc
CMake Error at flutter/ephemeral/.plugin_symlinks/flutter_webrtc/third_party/CMakeLists.txt:17 (file):
file failed to extract
Diagnosis
- flutter_webrtc 1.3.0 extracts its libwebrtc archive inside the plugin directory, which the Flutter tool reaches via
.plugin_symlinks — CMake refuses to extract through a symlinked path on the runner.
- Not reproducible locally:
flutter build windows on the dev machine (CMake 4.2.2) builds Polyphony.exe clean, likely because the extraction is already cached / local symlink semantics differ.
- Last green Frontend CI run on main was 2026-03-19; the failure almost certainly rode in with the flutter_webrtc/LiveKit work in the recently pushed backlog rather than the runner image alone.
Candidate fixes (in preference order)
- Bump
flutter_webrtc — upstream has reworked third_party extraction in newer releases; check its changelog/issues for the "Cannot extract through symlink" fix before pinning.
- CI-side workaround: extract/prime the plugin's third_party archive via the real (resolved) path before
flutter build windows, or resolve .plugin_symlinks to junctions the runner's CMake accepts.
- Pin the runner's CMake to a version predating the symlink strictness (least preferred — hides the issue).
Note
The same push also has conventional-commits red — historical commit subjects in the backlog exceed the 72-char policy (e.g. df5050d at 109 chars). That's unfixable without rewriting main history; separate decision, not part of this issue.
Symptom
Frontend CI (
Build Windows executable) fails on main since the 2026-07-13 push:Diagnosis
.plugin_symlinks— CMake refuses to extract through a symlinked path on the runner.flutter build windowson the dev machine (CMake 4.2.2) buildsPolyphony.execlean, likely because the extraction is already cached / local symlink semantics differ.Candidate fixes (in preference order)
flutter_webrtc— upstream has reworked third_party extraction in newer releases; check its changelog/issues for the "Cannot extract through symlink" fix before pinning.flutter build windows, or resolve.plugin_symlinksto junctions the runner's CMake accepts.Note
The same push also has
conventional-commitsred — historical commit subjects in the backlog exceed the 72-char policy (e.g. df5050d at 109 chars). That's unfixable without rewriting main history; separate decision, not part of this issue.