"Sync Skills for Cloud Agents" stuck

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 don’t get access to my local skills. This makes my Grok Bot experience worse because I want Grok Bot to hand off coding work to Cloud Agents that can use my local skills to maintain code quality.

Steps to Reproduce

In my Cursor Agents Window, when I go to Settings → Agents → Context and Tools → Sync Skills for Cloud Agents, and enable the toggle, it went from “Syncing 0 of 58” to “Syncing 58 of 58” but it’s stuck there.

I could verify that my Cloud Agents did not get access to those 58 local skills, so it has not finished syncing. I tried cancelling it, toggling the option off and on, and restarting the app multiple times but nothing worked.

Expected Behavior

It finishes syncing all local skills seamlessly without getting stuck.

Screenshots / Screen Recordings

Operating System

MacOS

Version Information

Version: 3.19.13
VS Code Extension API: 1.128.0
Commit: dd066f332fcea7382764400fde902f61920648d0
Date: 2026-09-04T17:41:16.065Z
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 25.5.0

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the detailed report. I can see in your screenshot that the row is enabled and it’s stuck on Syncing 58 of 58.

First, the good news. Sync has already downloaded all 58 skills, the setting is enabled, and nothing was deleted from ~/.cursor/skills. The row gets stuck on the final verification step after the download, which is why it never moves past Syncing 58 of 58. This is a known issue and we’re tracking it. I’ve added your case to it. I don’t have an exact timeline yet.

About Cloud Agents not seeing the skills. Right now, only Cloud Agents started from the Cursor desktop app pick up synced skills, from the Agents Window or the IDE. Agents started from Grok Bot don’t get them yet. I’ve shared this gap with the team too. As a temporary workaround, start the Cloud Agent from the Agents Window and it should pick up your synced skills.

To help confirm which step it’s stuck on, please send one line from the log:

  • In Cursor Agents Window, press Cmd+Shift+P and run Developer: Toggle Developer Tools.
  • Open the Console tab.
  • In the filter at the top, type Skills migration.
  • Copy the lines that show up here. They look like Skills migration: the destination is not serving the migrated skills yet …

Also, can you confirm where the Cloud Agents you tested were started from, Grok Bot, cursor.com, or the Agents Window?

I see this in the Console tab. You are right, I see “destination is not serving the migrated skills yet”

Yes, the Cloud Agents I tested were started from Grok Bot.

I can verify that local skills/commands work for Cloud Agents from the Agents Window. But they are not accessible on the Web cursor.com/agents.

Thanks, the log line is exactly what we need. reason=missing confirms the hang happens at the final verification step, after all 58 skills have already loaded into the store. This is the same issue we’re tracking, and I’ve added your case to it.

On the second point, what you’re seeing matches what we see too. Right now, synced skills are only picked up by cloud agents started from the desktop Agents Window. Agents started from Grok Bot and from the web at cursor.com/agents don’t get them yet. This isn’t anything in your setup, everything is enabled and the files are in the store. I’ve flagged this gap to the team separately.

As a temporary workaround, start the cloud agent from Agents Window. You already confirmed skills and commands are available there. I’ll post here when there’s an update on either item.

Awesome, thank you @deanrie!

Hi — related but a bit different from the “stuck at N of N after download” case.

**Environment**

  • Windows 10
  • Cursor 3.20.21 (Agents Window / Glass)
  • Setting: Sync Skills for Cloud Agents

**What happens**
The UI stays on **Syncing 1 of 21**, then **1 of 20** after we removed one skill. It never advances. Cancel / toggle / restart does not help.

**Local side is already small**
One skill (`infographic-creator`) previously contained a full `node_modules` (~9,000 files, ~35MB). Sync tried to upload that, hit the 5-minute round limit, and retried.

We then:

  • removed `node_modules`
  • moved `infographic-creator` out of `~/.cursor/skills`
  • left 20 small skills (no `node_modules`)

Local Cursor and Codex still work. Sync still stuck at 1.

**Cloud-side store appears blocked**
Logs show `BackgroundComposerService.ListAgentStoreDirectory` failing with `deadline_exceeded` / cancelled. In one session today that method showed up **10,000+** times. Agent-store sync also logs `round stalled after 300000ms` then `round_aborted`.

So the client cannot even finish listing the remote personal skill store. It looks like leftover files from the failed `node_modules` upload are still in the **account skill store**, and listing that directory times out — so delete/retry cannot complete.

**A Cloud Agent cannot clean it**
We started a Cloud Agent from the desktop Agents Window and asked it only to inspect (no deletes). On that VM:

  • `~/.cursor/skills` does not exist
  • `~/.agents/skills` does not exist
  • 0 files

Please purge the leftover files in this account’s personal Cloud Agent skill store (the one behind Sync Skills), especially any `infographic-creator/node_modules` remnants, so listing can succeed again.

Happy to send more logs if useful. cc @deanrie

Hey @Gino1, thanks for the detailed logs. This is a separate case from what was discussed earlier in this thread. In that case it got stuck on “N of N” during the final verification, while yours gets stuck on “1 of N” because the client can’t page through the remote store at all.

Key point: the skill folder containing a full node_modules (around 9000 files) is what broke sync. The round hits the 300000ms limit, gets aborted (round_aborted), and ListAgentStoreDirectory then fails with deadline_exceeded, so the client can’t finish reconcile and can’t delete the leftovers. Skills sync is meant for skill definitions, not dependency trees, so you shouldn’t keep node_modules inside the skill folder.

What you already did (removed node_modules, moved infographic-creator out of ~/.cursor/skills) is the right move, but there are still leftovers from the failed upload in the remote store. Those leftovers are exactly why listing is timing out. I can’t offer a self-serve reset for a personal store, the cleanup has to happen server-side. I’ve passed this to the team.

To track this cleanly and not mix it with the original case in this thread, please create a separate bug report with these details: Windows version, repro steps, and logs containing round stalled after 300000ms, round_aborted, and deadline_exceeded. Share the link here or tag me there and I’ll pick it up.