You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
NOOP and WHOOP data import both fail with FormatException (Unexpected extension byte) #199
Tried importing historical data from both NOOP and WHOOP using the Import data screen. Both imports fail immediately with a FormatException, just at different byte offsets:
I expected both files to import and be parsed/re-analyzed successfully, appearing alongside my existing band data as the screen describes ("Imported days sit alongside your band data").
Since both failures are the same exception type, just at different offsets, this looks like a shared decoding bug in the import pipeline (possibly a BOM or non-UTF-8 byte in the CSV being hit before parsing) rather than two separate issues.
Steps to reproduce
Go to Settings > Import data
Tap "Import from NOOP" and select a raw 1Hz CSV export from NOOP → fails with FormatException: Unexpected extension byte (at offset 18)
Tap "Import from WHOOP" and select a WHOOP export CSV → fails with FormatException: Unexpected extension byte (at offset 10)
Both fail on the first attempt, consistently
App version
iOS 26.5.2
Platform
iOS (TestFlight)
Phone model and OS version
iPhone 16 Pro – iOS 26.5.2
Which band?
WHOOP 5.0 / MG (experimental — expect breakage)
Screenshots
Quick checks
The official WHOOP app is not also connected to this band
What language are your CSVs in ? Mine had the column in french, OpenStrap only supports english. "Translations" should be supported or the system smarter to support all languages. In the mean time, I would suggest updating your column names (AI can help by looking at the code to retrieve the right labels)
What language are your CSVs in ? Mine had the column in french, OpenStrap only supports english. "Translations" should be supported or the system smarter to support all languages. In the mean time, I would suggest updating your column names (AI can help by looking at the code to retrieve the right labels)
@bartmuskala can you share at least the top few lines of your csv ? (just enough to see the format and make sure we don't see your data)
I would like to check why this happens
Activity
gerageragarza-prog commentedon Aug 5, 2026
Parser principal (iOS/Mac)
WhoopExportImporter.swift (parseo de CSV, manejo de localización, zip/carpeta):
https://github.com/ryanbr/noop/blob/main/Packages/StrandImport/Sources/StrandImport/WhoopExportImporter.swift
Store writer (iOS/Mac)
WhoopImporter.swift (mapeo a tablas internas, wake-day keying, escalas):
https://github.com/ryanbr/noop/blob/main/Strand/Data/WhoopImporter.swift
Gemelo en Android (Kotlin)
WhoopCsvImporter.kt:
https://github.com/ryanbr/noop/blob/main/android/app/src/main/java/com/noop/ingest/WhoopCsvImporter.kt
WhoopCsvExporter.kt (por si necesitas el lado inverso para tus pruebas de round-trip):
https://github.com/ryanbr/noop/blob/main/android/app/src/main/java/com/noop/ingest/WhoopCsvExporter.kt
Tests (útiles para ver casos borde ya cubiertos)
WhoopExportImporterTests.swift:
https://github.com/ryanbr/noop/blob/main/Packages/StrandImport/Tests/StrandImportTests/WhoopExportImporterTests.swift
WhoopCsvExporterTests.swift:
https://github.com/ryanbr/noop/blob/main/Packages/StrandImport/Tests/StrandImportTests/WhoopCsvExporterTests.swift
WhoopCsvImporterTest.kt (Android):
https://github.com/ryanbr/noop/blob/main/android/app/src/test/java/com/noop/ingest/WhoopCsvImporterTest.kt
WhoopCsvExporterTest.kt (Android):
https://github.com/ryanbr/noop/blob/main/android/app/src/test/java/com/noop/ingest/WhoopCsvExporterTest.kt
Brackyt commentedon Aug 5, 2026
What language are your CSVs in ? Mine had the column in french, OpenStrap only supports english. "Translations" should be supported or the system smarter to support all languages. In the mean time, I would suggest updating your column names (AI can help by looking at the code to retrieve the right labels)
gerageragarza-prog commentedon Aug 5, 2026
Very good observation—I have it set to Spanish.
abdulsaheel commentedon Aug 6, 2026
Damn nice findings.
bartmuskala commentedon Aug 6, 2026
Mine is set to English. How come it still fails? What are correct column names?
Brackyt commentedon Aug 6, 2026
@bartmuskala can you share at least the top few lines of your csv ? (just enough to see the format and make sure we don't see your data)
I would like to check why this happens
bartmuskala commentedon Aug 6, 2026
Any idea how to edit a .noopbak file? 🤔
Brackyt commentedon Aug 6, 2026
Might be wrong but i think it's like a zip file
bartmuskala commentedon Aug 6, 2026
It's indeed a zip. It contains two files: settings.json (age, gender, weight etc) and noop-backup.sqlite which itself contains many files:
I don't think language is the issue here.
the router judged byte zero, the reader doesn't
import: route by what the file holds, not what it's called
abdulsaheel commentedon Oct 4, 2026
fixed in #258, the importers handle the zip exports now