Troubleshooting
Solutions for common issues you may encounter when using Pitch Smith. Each entry follows a consistent problem -- cause -- solution format so you can quickly find and fix your issue.
Scan the headings below to find the symptom that matches what you are experiencing. Each section describes the likely cause and provides step-by-step instructions to resolve the problem.
Plugin Not Loading / Commands Not Found
Symptom
You type a Pitch Smith command (for example, /pitchsmith:build-one) in Claude Code and receive an error like "command not found" or "unknown command", or the plugin does not appear to be registered at all.
Cause
The Pitch Smith plugin may not be installed, may not be registered with Claude Code, or Claude Code may need to be restarted to pick up the plugin.
Solution
-
Verify the plugin is installed. Check that the
pitchsmith-plugin/directory exists in your Claude Code plugins location:ls ~/.claude/plugins/pitchsmith-plugin/If the directory does not exist, install the plugin by following the Install Guide.
-
Check your Node.js version. Pitch Smith requires Node.js 18 or later:
node --versionIf your version is below 18, update Node.js before proceeding.
-
Restart Claude Code. After installing or updating the plugin, restart your Claude Code session so it re-scans available plugins:
claude -
Verify plugin registration. After restarting, confirm that Pitch Smith commands are available:
/pitchsmithYou should see the Pitch Smith skill router respond with a welcome message or status summary.
If you installed the Pitch Smith VS Code extension instead of the standalone CLI plugin, the plugin files are managed by the extension. In that case, ensure the extension is enabled in VS Code and that Claude Code is running within a VS Code integrated terminal.
Slides Not Rendering Correctly
Symptom
A built slide appears broken in the Slide Viewer or browser -- elements are misaligned, text overflows, the background is missing, or the slide looks unstyled.
Cause
This usually happens when the theme CSS is not applied correctly, the template HTML contains errors, assets are missing, or the Slide Viewer cache is stale.
Solution
-
Check the theme file. Verify that
.slide-builder/theme.jsonexists and contains valid JSON:cat .slide-builder/theme.json | head -5If the file is missing or corrupt, re-run
/pitchsmith:setupto regenerate it. -
Inspect the slide HTML. Open the slide file directly in a browser to see if the issue is in the HTML or in the viewer:
open output/<your-deck-slug>/slides/slide-1.htmlIf the slide looks correct in a standalone browser but not in the viewer, the viewer may need a refresh.
-
Refresh the viewer manifest. Regenerate the slide manifest so the viewer picks up the latest content:
/pitchsmith:refresh -
Rebuild the slide. If the HTML itself is malformed, set the slide status back to "pending" in
plan.yamland rebuild:/pitchsmith:build-one
If a slide references images or brand assets that do not exist on disk, those elements will appear as broken placeholders. Verify that all referenced files in output/<deck-slug>/slides/ and .slide-builder/brand-assets/ are present.
Brand Extraction Failing
Symptom
Running /pitchsmith:setup to extract brand assets fails, produces incomplete results, or errors out during the extraction process.
Cause
Brand extraction can fail when the source material is in an unsupported format, the source URL is unreachable, or there are not enough brand signals in the provided assets.
Solution
-
Check source format. Brand extraction works best with:
- Company website URLs (for example,
https://yourcompany.com) - PDF brand guidelines
- Image files containing logos, color palettes, or typography samples
If you provided an unsupported file type, try a different source format.
- Company website URLs (for example,
-
Verify network access. If extracting from a URL, confirm that the URL is reachable:
curl -I https://yourcompany.comIf the site requires authentication or blocks automated access, download the relevant pages as PDFs and use those instead.
-
Provide more source material. If extraction produces sparse or inaccurate results, add more brand assets:
- Upload additional PDF files with brand guidelines
- Provide logo files in SVG or PNG format
- Include screenshots of existing presentations or marketing materials
-
Use manual brand setup as fallback. If automated extraction is not working, you can set up your brand manually by editing
theme.jsondirectly. See Customize Theme for guidance on manual theme editing.
For the best results, provide a brand guidelines PDF alongside your website URL. Brand guidelines typically contain explicit color codes, font names, and usage rules that make extraction much more accurate.
Export Errors
Symptom
Exporting slides to PNG, PDF, or PPTX fails, produces blank output, or hangs indefinitely.
Cause
Export operations depend on external tools (Puppeteer for PNG/PDF, Node.js libraries for PPTX). Failures typically stem from missing dependencies, insufficient system resources, or incompatible slide content.
Solution
PNG and PDF Export
-
Verify Puppeteer is available. PNG and PDF exports use Puppeteer to render slides in a headless browser:
node -e "require('puppeteer')" 2>&1If this command errors, Puppeteer may not be installed. It is typically bundled with the plugin, but you can install it manually:
npm install puppeteer -
Check Node.js version. Puppeteer requires Node.js 18 or later:
node --version -
Try exporting a single slide first. If batch export is failing, test with a single slide to isolate whether the issue is specific to one slide or systemic.
PPTX Export
-
Check for complex HTML. PPTX export converts slide HTML to PowerPoint format. Slides with extremely complex layouts (deeply nested elements, custom SVG graphics) may not convert perfectly. Simplify the slide layout if possible.
-
Verify disk space. PPTX generation creates temporary files. Ensure you have sufficient disk space in your working directory.
Not all visual elements translate perfectly to every export format. PNG and PDF exports are high-fidelity (they render the exact HTML). PPTX export approximates the layout with editable text boxes and positioned images -- some visual flourishes may be simplified.
Viewer Not Opening
Symptom
After building slides, the Slide Viewer does not open automatically, or attempting to open it manually fails.
Cause
The Slide Viewer may not open if the VS Code extension is not installed, if there is a port conflict, or if the viewer panel failed to initialize.
Solution
-
Check the VS Code extension. The Slide Viewer is part of the Pitch Smith VS Code extension. Verify it is installed:
- Open VS Code
- Go to Extensions (
Cmd+Shift+Xon macOS,Ctrl+Shift+Xon Windows/Linux) - Search for "Pitch Smith"
- Confirm the extension is installed and enabled
-
Open the viewer manually. Use the Command Palette:
- Open the Command Palette (
Cmd+Shift+Pon macOS,Ctrl+Shift+Pon Windows/Linux) - Type "Pitch Smith: Open Slide Viewer"
- Select the command
- Open the Command Palette (
-
Check for port conflicts. If the viewer serves content via a local HTTP server, another application may be using the same port. Check the VS Code output panel for error messages about port conflicts.
-
Restart VS Code. If the viewer panel is in a broken state, close and reopen VS Code to reinitialize the extension.
If the in-editor viewer is not working, you can present slides in your browser using the present command:
/pitchsmith:present
This starts a local HTTP server and opens your deck in a full browser window.
Search Not Working in Dev Mode
Symptom
When running the Docusaurus dev server (npm start), the search bar displays the message "Search index only available when you run docusaurus build" and no search results appear.
Cause
The search plugin (@easyops-cn/docusaurus-search-local) generates its search index during docusaurus build via a postBuild hook. The dev server (docusaurus start) uses webpack-dev-server with hot module replacement and does not trigger this hook, so no search index is available. This is expected behavior, not a bug.
Solution
Use the preview script to build and serve the site locally with a working search index:
cd pitchsmith-website
npm run preview
This runs docusaurus build followed by docusaurus serve, giving you a local preview of the production site with fully functional search.
npm start-- Fast development with hot reload, but search is unavailable.npm run preview-- Full production build served locally, with working search. Use this when you need to test or verify search behavior.npm run build-- Production build only (output inbuild/). Use this for deployment.
Common Error Messages
"No theme found" or "Theme file not found"
Cause: Pitch Smith commands that require a theme (build, edit, theme-edit) cannot find .slide-builder/theme.json.
Solution: Run brand setup to create your theme:
/pitchsmith:setup
"Workflow not found in plugin or user overrides"
Cause: A command's workflow file could not be located in either the plugin directory or your local overrides.
Solution:
- Verify the plugin is properly installed (see Plugin Not Loading above).
- If you have ejected and modified workflows, verify the expected file exists in
.slide-builder/workflows/.
"Plan file not found" or "No deck plan exists"
Cause: Build commands require a deck plan (plan.yaml) to know which slides to generate.
Solution: Create a deck plan first:
/pitchsmith:plan-deck
"Cannot read catalog" or "Catalog not found"
Cause: Template-related commands cannot find the template catalog at .slide-builder/catalog/.
Solution:
- Verify your workspace is scaffolded (
/pitchsmithinitializes the workspace if needed). - Check that
.slide-builder/catalog/catalog.jsonexists and contains valid JSON.
"Puppeteer launch failed" or "Browser not found"
Cause: Export commands that use Puppeteer (PNG, PDF) cannot launch the headless browser.
Solution:
-
Ensure Puppeteer is installed (see Export Errors above).
-
On Linux systems, you may need additional system libraries. Run:
npx puppeteer browsers install chrome -
If running in a restricted environment (Docker, CI), ensure the environment allows headless browser execution.
If you are running Pitch Smith in a Docker container, CI pipeline, or remote development environment, headless browser features (export, sample generation) may require additional configuration. Ensure the environment has the necessary system libraries for Chromium.
See Also
The following pages provide deeper context that may help resolve issues:
- Install Guide -- Full installation instructions and system requirements
- Quickstart -- Verify your setup is working with a quick end-to-end test
- Commands Reference -- Complete command reference with expected behavior for each command
- Directory Structure -- Where Pitch Smith files are stored and what each directory contains
- Customize Theme -- Manual theme editing as a fallback when automated tools encounter issues
- Build Slides -- Slide building workflow, including handling build failures