HeyPuter/puter · error · HttpError

access_denied

access_denied

Error message

Write access denied for destination

What it means

Error "Write access denied for destination" thrown in HeyPuter/puter.

Source

Thrown at src/backend/drivers/ai-video/VideoGenerationDriver.ts:516

        let ancestorsCache: Promise<
            Array<{ uid: string; path: string }>
        > | null = null;
        const canWrite = await this.services.acl.check(
            actor,
            {
                path: pathToCheck,
                resolveAncestors() {
                    if (!ancestorsCache) {
                        ancestorsCache =
                            fsService.getAncestorChain(pathToCheck);
                    }
                    return ancestorsCache;
                },
            },
            'write',
        );
        if (!canWrite) {
            throw new HttpError(403, 'Write access denied for destination', {
                legacyCode: 'access_denied',
            });
        }
    }

    #resolveModel(modelId: string, provider?: string): IVideoModel | null {
        const models = this.#modelIdMap[modelId?.trim().toLowerCase()];
        if (!models || models.length === 0) return null;
        if (!provider) return models[0];

        // Prefer exact primary ID match over alias matches
        const exactIdMatch = models.find(
            (m) => m.id === modelId && m.provider === provider,
        );
        if (exactIdMatch) return exactIdMatch;

        const exactPuterIdMatch = models.find(
            (m) => m.puterId === modelId && m.provider === provider,

View on GitHub (pinned to 908ec23eda)

Solutions

  1. Choose a destination path the caller has write permission for.
  2. Verify ownership or permissions on the target directory before writing.

When it happens

Trigger: Thrown at src/backend/drivers/ai-video/VideoGenerationDriver.ts:516 when the library encounters an invalid state.

Common situations: See trigger scenarios.

Understand the failure class


AI-assisted analysis of HeyPuter/puter@908ec23eda (2026-08-12). Data as JSON: /api/errors/e603c3e6c1cf15b1. Report an issue: GitHub.