Fission-AI/OpenSpec · error

Warning: Skipping

Error message

Warning: Skipping ${profilePath}: ${err?.message ?? String(err)}

What it means

Warning printed by PowerShellInstaller.configureProfile inside its per-profile try/catch: reading an existing PowerShell profile failed for a reason other than ENOENT (permissions, unsupported encoding). The installer skips that profile and continues with the remaining ones rather than aborting.

Solutions

  1. Check the profile file's permissions and encoding
  2. Fix the underlying read error named in the message, then re-run the installer
  3. Rely on other configured profiles or configure this one manually
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at src/core/completions/installers/powershell-installer.ts:220 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Fission-AI/OpenSpec@6926ccb18a (2026-08-25). Data as JSON: /api/errors/650099f4462b7947. Report an issue: GitHub.

Appendix: source

Thrown at src/core/completions/installers/powershell-installer.ts:220

          }
          await fs.mkdir(profileDir, { recursive: true });
        }

        let profileContent = '';
        let fileEncoding: BufferEncoding = 'utf-8';
        let fileBom: Buffer = Buffer.alloc(0);
        try {
          const file = await this.readProfileFile(profilePath);
          profileContent = file.content;
          fileEncoding = file.encoding;
          fileBom = file.bom;
        } catch (err: any) {
          // If the file doesn't exist that's fine — we'll create it as UTF-8.
          // Any other read error (permissions, unsupported encoding, etc.) → skip this profile.
          if (err?.code === 'ENOENT') {
            // keep defaults
          } else {
            console.warn(`Warning: Skipping ${profilePath}: ${err?.message ?? String(err)}`);
            continue;
          }
        }

        // Check if already configured
        const scriptLine = `. "${scriptPath}"`;
        if (profileContent.includes(scriptLine)) {
          continue; // Already configured, skip
        }

        // Add OpenSpec completion configuration with markers
        const openspecBlock = [
          '',
          '# OPENSPEC:START - OpenSpec completion (managed block, do not edit manually)',
          scriptLine,
          '# OPENSPEC:END',
          '',
        ].join('\n');

View on GitHub (pinned to 6926ccb18a)