# “Sync Skills for Cloud Agents” stuck at syncing 0 of 0

**URL:** <https://forum.cursor.com/t/sync-skills-for-cloud-agents-stuck-at-syncing-0-of-0/171557>\
**Category:** Bug Reports\
**Tags:** skills, agents-window, cloud-agents\
**Created:** [September 14, 2026, 2:16am UTC](https://forum.cursor.com/t/sync-skills-for-cloud-agents-stuck-at-syncing-0-of-0/171557 "2026-09-14T02:16:39Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jerome\_De\_Leon](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/jerome_de_leon/32/120658_2.png) [@Jerome\_De\_Leon](https://forum.cursor.com/u/Jerome_De_Leon)\
**Post date:** [September 14, 2026, 2:16am UTC](https://forum.cursor.com/t/sync-skills-for-cloud-agents-stuck-at-syncing-0-of-0/171557/1 "2026-09-14T02:16:39Z")

</div>

### Where does the bug appear (feature/product)?

Cursor Agents Window

### Describe the Bug

The “Sync Skills for Cloud Agents” option is stuck on the syncing step and never finishes. As a result, Cloud Agents can’t access my local skills. This means I can’t use Cloud Agents.

### Steps to Reproduce

Agent Window \> Settings \> Agents \> Sync Skills for Cloud Agents

### Expected Behavior

It should be able to sync.

### Screenshots / Screen Recordings

 ![SCR-20260914-jisw.png](https://us1.discourse-cdn.com/cursor1/original/3X/c/5/c5daa2ffbc5338ab60ff6b4577957991fe4882f7.png)

### Operating System

MacOS

### Version Information

Version: 3.20.17  
VS Code Extension API: 1.128.0  
Commit: 0c32194e3fb5ffaced9fb36430b860ec301e1fc0  
Date: 2026-09-12T03:16:10.634Z  
Layout: Agent Window  
Build Type: Stable  
Release Track: Default  
Electron: 42.10.0  
Chromium: 148.0.7778.280  
Node.js: 24.18.1  
V8: 14.8.178.38-electron.0  
xterm.js: 6.1.0-beta.291  
OS: Darwin arm64 24.6.0

### Additional Information

For context, I mostly install skills with `npx skills` and symlink them to `~/.cursor/skills`. I also manually wrote some skills in `~/.agents/skills` and symlinked them to `~/.cursor/skills`.

I also tried following this ["Sync Skills for Cloud Agents" stuck - #5 by deanrie](https://forum.cursor.com/t/sync-skills-for-cloud-agents-stuck/170899/5) , but nothing shows in the console when I triggered it.

### Does this stop you from using Cursor

No - Cursor works, but with this issue

---

<div class="post-metadata">

**Author:** ![mohitjain](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/mohitjain/32/100229_2.png) [@mohitjain](https://forum.cursor.com/u/mohitjain)\
**Post date:** [September 14, 2026, 6:40am UTC](https://forum.cursor.com/t/sync-skills-for-cloud-agents-stuck-at-syncing-0-of-0/171557/7 "2026-09-14T06:40:25Z")

</div>

Hey @Jerome_De_Leon, thanks for the detail on how your skills are installed - that’s the key. Sync only picks up real folders in `~/.cursor/skills`; symlinks are skipped, and since yours are all symlinked in from `npx skills`/`~/.agents/skills`, it finds 0 to send. Nothing’s wrong with the skills (your local agent still uses them), and nothing was removed.

To get them across:

1. Settings → Agents → Sync Skills for Cloud Agents → Cancel, then fully quit Cursor (all windows).
2. Replace the symlinks with real copies:

```auto
cd ~/.cursor/skills
for s in *; do
  if [-L "$s"]; then
    cp -RL "$s" "$s.copy" && rm "$s" && mv "$s.copy" "$s"
  fi
done

```

1. Open only the Agents Window, turn Sync on, and wait for “Syncing N of N” to finish (N = your real skill count).

The spinner not finishing is a separate issue we’re tracking (more likely with multiple windows open), so keep just the Agents Window open for this. One note: later `npx skills` updates will need to be copied in rather than symlinked. If it still sticks, tell me the N of N it shows.

---

<div class="post-metadata">

**Author:** ![mohitjain](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/mohitjain/32/100229_2.png) [@mohitjain](https://forum.cursor.com/u/mohitjain)\
**Post date:** [September 23, 2026, 12:51pm UTC](https://forum.cursor.com/t/sync-skills-for-cloud-agents-stuck-at-syncing-0-of-0/171557/9 "2026-09-23T12:51:07Z")

</div>

You’ve got the tradeoff right, plain copies fall out of date because `npx skills` updates the source, not the copy. The setup that keeps both aligned is to flip the symlink direction: keep the real skill folders in `~/.cursor/skills` (so the cloud sync picks them up) and point `~/.agents/skills` at those instead of the other way around. Then `npx skills` updates land in the real folders that local and cloud both use, with nothing to re-copy. The symlink-skip in the sync itself is a known issue we’re tracking, so that’s a stopgap until the sync follows symlinks directly.

---

<div class="post-metadata">

**Author:** ![Jerome\_De\_Leon](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/jerome_de_leon/32/120658_2.png) [@Jerome\_De\_Leon](https://forum.cursor.com/u/Jerome_De_Leon)\
**Post date:** [September 24, 2026, 3:03am UTC](https://forum.cursor.com/t/sync-skills-for-cloud-agents-stuck-at-syncing-0-of-0/171557/10 "2026-09-24T03:03:48Z")

</div>

Hi @mohitjain, thanks for your suggestion. Your suggestions work, but I’m now getting the same issue and warning in the logs as in ["Sync Skills for Cloud Agents" stuck - #5 by deanrie](https://forum.cursor.com/t/sync-skills-for-cloud-agents-stuck/170899/5) . The cloud agent I started in my agent window from the desktop app couldn’t detect this. I spun up a new cloud agent and asked whether it had access to the 35 skills I just linked, and it said nope. Am I missing something? That link says it should be accessible, though, even if it didn’t complete the last step, unless I’m missing something.

---

<div class="post-metadata">

**Author:** ![mohitjain](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/mohitjain/32/100229_2.png) [@mohitjain](https://forum.cursor.com/u/mohitjain)\
**Post date:** [September 24, 2026, 10:20am UTC](https://forum.cursor.com/t/sync-skills-for-cloud-agents-stuck-at-syncing-0-of-0/171557/11 "2026-09-24T10:20:02Z")

</div>

@Jerome_De_Leon good, flipping the symlinks got your 35 skills discovered. What’s still failing is the last step of the sync. That “destination is not serving” warning means the skills copied up but the sync never confirmed them as live, and until that final step finishes the cloud agents won’t see them, so a run started before then reports none. That confirm step hanging is the separate issue we’re tracking, and it’s most often caused by a second Cursor window holding the sync.

Try it with a single window:

1. Close every other Cursor window, including IDE windows. Leave only the Agents Window open.
2. Settings \> Agents \> Sync Skills for Cloud Agents \> Cancel, then fully quit Cursor.
3. Reopen only the Agents Window, turn Sync on, and wait for “Syncing N of N” to clear and show a synced confirmation, not just spin.
4. Once it confirms, start a fresh Cloud Agent and ask what skills it has.

If it still hangs on that confirm step with only one window open, tell me and I’ll check your sync from our side.

---

<div class="post-metadata">

**Author:** ![Jerome\_De\_Leon](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/jerome_de_leon/32/120658_2.png) [@Jerome\_De\_Leon](https://forum.cursor.com/u/Jerome_De_Leon)\
**Post date:** [September 25, 2026, 1:24am UTC](https://forum.cursor.com/t/sync-skills-for-cloud-agents-stuck-at-syncing-0-of-0/171557/13 "2026-09-25T01:24:45Z")

</div>

Thanks, @mohitjain. I did all that, but now it’s stuck. I had to force-close and restart Cursor every now and then to proceed and now, after a while of doing that, it’s stuck again at “Syncing 35 of 35” with same warning message of “Skills migration: the destination is not serving the migrated skills yet (direction=TO\_STORE reason=missing count=1); leaving every source copy in place”

 ![SCR-20260925-iqql](https://us1.discourse-cdn.com/cursor1/original/3X/e/b/eb60adb595c474bb4cd46450b74c815b2facd800.png)

---

<div class="post-metadata">

**Author:** ![mohitjain](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/mohitjain/32/100229_2.png) [@mohitjain](https://forum.cursor.com/u/mohitjain)\
**Post date:** [September 25, 2026, 11:34am UTC](https://forum.cursor.com/t/sync-skills-for-cloud-agents-stuck-at-syncing-0-of-0/171557/14 "2026-09-25T11:34:27Z")

</div>

That “destination is not serving… reason=missing count=1” is the final confirm step of the sync, not anything in your setup, and it’s an issue we’re tracking. The `count=1` is the clue: 34 of your 35 skills reached the store and one didn’t, so it keeps waiting on that last one.

To unblock now, find the one that won’t upload:

1. Quit Cursor, then move all but about 5 skill folders out of `~/.cursor/skills` into a temp folder.
2. Open only the Agents window, turn Sync on, and let that small set finish.
3. Add the rest back in small batches, re-syncing after each, until it stalls again.
4. The last batch added has the culprit. Check that folder for a leftover symlink (top level or nested) or an unusually large file, replace it with a clean real copy or drop it, and the count will match and finish.

---

<div class="post-metadata">

**Author:** ![Jerome\_De\_Leon](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/jerome_de_leon/32/120658_2.png) [@Jerome\_De\_Leon](https://forum.cursor.com/u/Jerome_De_Leon)\
**Post date:** [September 27, 2026, 1:27am UTC](https://forum.cursor.com/t/sync-skills-for-cloud-agents-stuck-at-syncing-0-of-0/171557/15 "2026-09-27T01:27:06Z")

</div>

Hi @mohitjain, following your advice, I flipped the direction:

- Real folders now live in `~/.cursor/skills` (33 skills)
  - Skill count: originally 35. I removed `biome-anti-slop` (unwanted) and my own `migrate-to-skills` (it collides with your built-in of the same name), leaving 33. That’s the “33” in the sync counter and in the list below.

- `~/.agents/skills` is a symlink → `~/.cursor/skills`
- Verified: no symlinks inside `~/.cursor/skills` at any depth, no broken links, no files over 1 MB, no `.git` or `node_modules`. Largest skill is `vercel-react-best-practices` (76 files, ~225 KB of content); the next largest is `vercel-composition-patterns` (14 files, ~49 KB).

Sync still stalled, so I was told to bisect: move all but 5 skills out, sync, and add them back in batches.

## What happened

1. **Sync restored skills I had moved out.** After moving 24 skills to a staging folder, all 24 reappeared in `~/.cursor/skills`. Every folder, including ones I never moved, had the same new timestamp.
2. **Sync deleted the 5 skills I kept.** On the next attempt, `~/.cursor/skills` was left completely empty.
3. **Turning Sync off restored an old snapshot.** All 35 came back, including a skill and a subfolder I had deleted days earlier. So sync seems to apply its own stored state and overwrite local changes in both directions.
4. **Removed a possible name collision.** I had a user skill named `migrate-to-skills`, which is also a built-in in `~/.cursor/skills-cursor`. I removed mine. Sync still stalled (“Syncing 22 of 33”).
5. **Found agent-exec timeouts.** The renderer log repeated `[agent-exec] Provider registration timed out (attempt 1/9 … 8/9)`.
6. **Found orphaned processes.** After quitting Cursor, about 20 `chrome_crashpad_handler` processes from versions 3.16.29 through 3.22.7 were still running, plus two `cursor-agent` private workers and two `cursorsandbox` proxies. After killing all of them and relaunching, **sync reported success**.
7. **But the success was hollow:**
  - Local `~/.cursor/skills` was **empty** after the “successful” sync.
  - A cloud agent (Ask mode) sees **0 of my 33 skills**. It only sees plugin and built-in skills (Vercel, Slack, Notion, Context7, and others).

## Questions

1. Where is the user-skill sync state stored, and how do I reset it cleanly? `~/.cursor/skills-cursor/.sync-manifest.json` lists only built-in skills.
2. Why does sync delete or restore local folders instead of uploading them? Is it expected to be two-way?
3. Why does sync report success when 0 user skills reached the cloud?
4. Should orphaned crashpad handlers and workers survive quitting and updating Cursor? They seem linked to the agent-exec timeouts.
5. What’s the recommended recovery path? I have a backup of all 33 skills, but I don’t want to restore them until I know sync won’t delete them again.

---

<div class="post-metadata">

**Author:** ![mohitjain](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/mohitjain/32/100229_2.png) [@mohitjain](https://forum.cursor.com/u/mohitjain)\
**Post date:** [September 28, 2026, 10:43am UTC](https://forum.cursor.com/t/sync-skills-for-cloud-agents-stuck-at-syncing-0-of-0/171557/16 "2026-09-28T10:43:15Z")

</div>

Hey Jerome, one key point first: this sync moves your skills, it doesn’t copy them. When it completes they live in the cloud store and the local copies in `~/.cursor/skills` are removed by design, and turning Sync off moves them back down. So an empty `~/.cursor/skills` after a “successful” run usually means they’re in the store, not lost.

What’s actually wrong in your case is a success being reported while the cloud agent still sees 0 skills. That confirm step stalling is the issue we’re tracking.

To get to safe ground:

1. Turn Sync off and leave it off for now.
2. Keep your backup of the 33 untouched, and restore them into `~/.cursor/skills` as real folders (no symlinks) with Sync off, so nothing moves them.
3. To use them on cloud agents in the meantime, commit the skills into your repo’s `.cursor/skills`, which agents read directly from the checkout.

The leftover worker and crashpad processes surviving a quit aren’t expected and likely tie into the agent-exec timeouts, so kill those before relaunching.

---

<div class="post-metadata">

**Author:** ![Jerome\_De\_Leon](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/jerome_de_leon/32/120658_2.png) [@Jerome\_De\_Leon](https://forum.cursor.com/u/Jerome_De_Leon)\
**Post date:** [September 29, 2026, 6:41am UTC](https://forum.cursor.com/t/sync-skills-for-cloud-agents-stuck-at-syncing-0-of-0/171557/17 "2026-09-29T06:41:13Z")

</div>

Yeah, it’s weird because I was planning to run some tasks on cloud agents while I do local development, but it moved the skills to the cloud store. It’s all good. I wrote a new skill on the Notion skill page, and I asked the Cursor cloud agent with Notion MCP to use it to set up the cloud agents, which is working so far. Thank you, @mohitjain for your help~
