windmill-labs/windmill · warning
Failed to push shared UI folder: ${e}
Error message
Failed to push shared UI folder: ${e} What it means
After applying file changes, `wmill sync push` pushes the shared UI folder out-of-band via pushSharedUi(). Failures there are caught and logged as a warning so the main push result is not invalidated — but the shared UI folder may be stale on the remote.
Source
Thrown at cli/src/commands/sync/sync.ts:6525
})();
pool.add(promise);
// Remove from pool when complete
promise.then(() => {
pool.delete(promise);
if (isFolderGroup) folderPhaseRemaining--;
});
}
// Wait for at least one task to complete before continuing
if (pool.size > 0) {
await Promise.race(pool);
}
}
try {
await pushSharedUi(workspace.workspaceId, opts.keepDeleted);
} catch (e) {
log.warn(`Failed to push shared UI folder: ${e}`);
}
try {
await offerToRunNewMigrations(
workspace.workspaceId,
newDatatableMigrations,
{
yes: opts.yes,
jsonOutput: opts.jsonOutput,
},
);
} catch (e: any) {
log.warn(
`Failed to run new datatable migrations: ${e?.body ?? e?.message ?? e}`,
);
}
const lockJobs = await checkServerLockJobs(
workspace.workspaceId,
pushStartedAt,View on GitHub (pinned to e474e8803c)
Solutions
- Read the interpolated error to identify the cause (HTTP status / network).
- Re-run `wmill sync push` (regular files already pushed; only shared UI will retry).
- Verify token permissions for the shared UI folder, or push with an admin/deployer token.
- If your server doesn't support shared UI, upgrade the server or disable shared UI syncing.
Example fix
// Verify and retry manually: // before wmill sync push // → warn: Failed to push shared UI folder: ... // after wmill sync push --dry-run # confirm access, then re-push with valid token wmill sync push
Defensive patterns
Strategy: try-catch
Validate before calling
// Pre-check shared UI access before pushing:
try {
await wmill.getFolder({ workspace, path: 'u/shared_ui' });
} catch {
console.warn('Shared UI folder inaccessible; push will skip it');
} Type guard
function isApiError(e: unknown): e is { statusCode: number; body?: unknown } {
return typeof e === 'object' && e !== null && 'statusCode' in e;
} Try / catch
try {
await pushSharedUi(workspaceId, keepDeleted);
} catch (e) {
log.warn(`Shared UI push skipped: ${e instanceof Error ? e.message : e}`);
// schedule retry or alert; main file push is unaffected
} Prevention
- Verify token permissions for the shared UI folder before sync
- Re-run push after transient failures — shared UI push is retried independently
- Check server version supports shared UI endpoints
- Monitor CI logs for this warning in shared workspaces
When it happens
Trigger: pushSharedUi throws due to network errors, API auth/permission failures, or invalid shared UI files while `wmill sync push` runs with the shared UI feature enabled.
Common situations: Token lacking write access to shared UI folder; server version without shared UI support; transient network failure at end of a long push.
Related errors
- pointerErrors.join("\n")
- Invalid native trigger file path: ${filePath}. Expected form
- Failed to compute shared UI diff for dry-run preview: ${e}
- ${msg}
- Workspace folder not found, are you in the right directory?
AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03).
Data as JSON: /api/errors/f2fd06e9bef2f1c7.
Report an issue: GitHub.