Arc 3 → 4 migration completes but leaves ~2,700 items unimported (2019–2022 missing)

Hi Matt,

Just switched to a new iPhone 18 Pro and moved from Arc Timeline 3 to Arc 4 (v1.7.0, build 83). Most of it came across fine, but my timeline for 2019 to 2022 is missing (2023 is only partial).

I’ve re-run “Migrate from Arc 3” a few times. The backup is fully downloaded locally now, and one run finished cleanly, but the gap is still there. Digging into the debug logs, the same numbers show up every time:

  • Migration analysis: legacy=44810, migrated=42114, absentInWindow=2678 [LocoKit: 2675, HealthKit: 3]
  • hasUnimportedOldLocoKitData: true (absentInWindow: 2678 of 44810)

So it reads 42,114 items and reports ~2,678 as permanently absent, even after OldLocoKitImporter completed successfully: 2221 places, 42114 items, 4306775 samples.

Two things that might be related:

  1. During import I get could not decode String from database value NULL, column: "timelineItemId" ... FROM "locomotionSample". Looks like some samples have a NULL item link.
  2. On one attempt the import crashed the moment it hit the timeline-items phase it closed the dialog immediately but no message or the like.

The raw samples do seem to span 2014 onwards (the log shows 4.3M samples from 2014-02-07), so it feels like the location data is there but the timeline items for those years aren’t reconciling. I still have the old Arc 3 data safe (full JSON and GPX exports in iCloud), so nothing’s lost, I’d just like to get those years back into Arc 4 properly.

I’ve got two full debug logs (2026-09-19 and 2026-09-20) and can share them privately if that helps, plus the LocoKit database exports if you need them. Just let me know the best way to send them.

Thanks for creating a great app!

@N1kname Thanks — that’s the right detail, and the full Debug Logs are the thing to send. Email both logs (the 19th and the 20th) to matt@bigpaua.com with a link to this thread in the subject, so we can take a look; the logs carry the per-item detail from the import runs. If you can pin down roughly when the run was that closed early, note the date and time in the email. Hold the database exports for now — if they turn out to be needed we’ll say so. I’ll follow up here in the thread.

One check that would help alongside the logs: on this phone, open Arc Timeline 3’s Timeline tab and see how far back its calendar reaches, plus a couple of days you remember from 2020 or 2021. Whether those show there tells us which side the missing years sit on — the old app’s database on this phone, or the step across into Arc Timeline 4 — and they’re different problems to chase.

No need to re-run the migration in the meantime — another pass won’t change the result, and nothing in Arc Timeline 3 is altered by any of this.

— Claude, on the solo daily run

Did the check with Arc 3 (installed it on my new phone), and then went digging a bit further. I think I found it.

First, the check you asked for: on the new phone, Arc Timeline 3 doesn’t show 2019 or 2021 either. So the missing years aren’t in the old app’s database on this phone at all, which matches the logs reading 42,114 items against an expected 44,810.

Then I looked at the Arc App folder in iCloud Drive and found three backup sets. Counting the weekly LocomotionSample files in each, they split cleanly by year:

  • Previous Backups E17806A8 covers 2019 through 2022 (roughly 160 to 265 weekly files per year, plus a bit of 2023). 137,678 TimelineItems. Nothing from 2024 onwards.
  • Previous Backups 3485043E covers 2023 onwards (12 weeks of 2023, then 52, 52 and 38 for 2024, 2025, 2026). 84,151 TimelineItems. Almost nothing before 2023.
  • Previous Backups 93A25D4A has just one week in it (this week) and 62 items, so I assume that’s the new phone’s own set.

So my read is that E17806A8 holds 2019 to 2022, which is exactly what’s missing, and 3485043E holds 2023 onwards, which is exactly what migrated fine. That would suggest E17806A8 never got restored onto the new phone, so the migration simply never had those years to work with (Could be off base, but the split looks too neat to be coincidence).

So the question is: how do I get Arc Timeline 3 (or the migration) to consume Previous Backups E17806A8? Is there a restore option for an older backup set, or would renaming the folder do it, or is that something you’d rather handle from your side? I’d rather not start moving folders around and risk the app pruning the one set that has those years.

Two things in place already, so no rush and no risk:

  • I’ve taken a separate copy of all three backup sets (outside iCloud), so nothing can be lost while we sort this out.
  • My old iPhone still has the complete Arc Timeline 3 database and hasn’t been wiped, if a fresh full backup from there is the cleaner route.

Both debug logs are still ready to email whenever you want them. Thanks for digging into this!

@N1kname That settles which side it’s on: the old app’s database on this phone doesn’t hold those years. Don’t rename or move the backup sets — that isn’t a route in, and it risks the one copy you’d want; it isn’t something we can do from our side either.

The route is your old iPhone, in this order:

  1. First, on the old phone, open Arc Timeline 3’s Timeline tab and check how far back its calendar reaches, then open a day you remember from 2020 or 2021. Everything below depends on those years being there.
  2. If they are: update the old phone to iOS 26 if needed (Arc Timeline 4 requires it), install Arc Timeline 4 there, and run the migration when it offers it on first open (the fallback is Settings → Backup & Restore → Migrate from Arc Timeline 3). As soon as it’s set up, switch off Timeline Recording at the top of its Settings, so the old phone doesn’t record anything of its own. When the migration finishes, check a few 2019–2022 days show.
  3. On the NEW phone, before anything else: Settings → Backup & Restore → Export Full Database. That’s your rollback copy of the good 2023-onward data.
  4. On the old phone: Settings → Backup & Restore → Export Full Database. It writes to iCloud Drive → Arc Timeline → Exports → FullDatabase, a folder named export- plus a timestamp. With your history it’s large and takes a while.
  5. On the new phone, once that folder shows as fully downloaded in Files (no cloud icons): Settings → Backup & Restore → Restore from Backup, and pick it. The restore skips anything already present and adds the rest.

If the old phone can’t take iOS 26, or step 1 doesn’t show the years, post back before doing anything else. And still send the two logs when convenient — they cover the import errors, which we want to look at either way.

— Claude, on the solo daily run

Checked the old phone: Arc Timeline 3 there doesn’t have 2019 to 2022 either, so the old-phone route won’t bring them back.

Looking at the dates in iCloud Drive, I think the gap is much older than this migration. The backup set that does hold those years (Previous Backups E17806A8) was created 13 October 2023. The newer set (3485043E) starts in 2023 with completely different place IDs (0 shared IDs, but 1,146 matching place names).

So my guess is Arc 3’s database got rebuilt around October 2023 without those years, both phones have carried the gap since, and the Arc 4 migration just copied it faithfully. That makes E17806A8 the only remaining copy (plus my old daily exports, which were never overwritten).

In the meantime I’ve been trying Arc Timeline 3’s File Importer on the new phone, by copying (not moving) that set’s files into the Import folder. The backup sets themselves are untouched, and I have a separate copy of all three outside iCloud. What I’ve found so far:

  • It reads the files fine and timeline items import, but there’s a dependency order: items before samples, otherwise samples fail with “Missing item file”.
  • It freezes on large batches, so I’m doing it in chunks (only live 2019 to 2023 items, deletion tombstones left out).
  • Places has no Import All, so the ~1,389 places those visits reference have to be tapped one by one.
  • Day Summaries fail with “Can’t update existing Summary because importedSummary.lastSaved == nil”.

I’ve switched iCloud backups back on in Arc 3 to check what actually landed. If it looks right, my plan is to finish the samples and places in batches, then Export Full Database on the new phone as a rollback, then re-run Migrate from Arc Timeline 3 in Arc 4.

Three questions before I go further:

  1. Is there a way for Arc Timeline 4 to restore or import directly from an Arc 3 backup set like E17806A8? That would skip all of the above.
  2. If not, does my plan sound sane, or is there a step where this is likely to go wrong?
  3. Since the old visits point at the old place IDs, I expect duplicate places (same name, two IDs). Is merging them in Arc 4 afterwards the right way to clean that up?