Troubleshooting
Common issues and solutions for GDSFactory+. Many issues can be diagnosed by checking the GDSFactory+ Output panel (View > Output > select "GDSFactory+") or by asking the AI agent.
Quick Navigation
- Installation Issues - Extension not loading, API keys, missing dependencies
- Python Environment Issues - Virtual environment, package, and import errors
- Platform-Specific Issues - Windows, macOS, and Linux quirks
- Network Issues - Firewalls, proxies, and cloud workspaces
- Component Issues - Build failures and DRC problems
- Layout Viewer Issues - Blank viewer, rendering problems
- Schematic Editor Issues - Blank editor and WebGL problems
- Using GDSFactory+ Over SSH - Remote development setup
- Getting More Help
Installation Issues
Extension Not Loading
Symptoms: The GF+ icon doesn't appear in the sidebar, or the extension panel is empty.
Solutions:
- Restart VSCode after installing the extension
- Make sure you have opened a GDSFactory+ project folder (one with a
pyproject.tomlfile) - Check the VSCode Output panel (View > Output) and select "GDSFactory+" from the dropdown for error messages
API Key Not Working
Symptoms: "Invalid API key" or authentication errors.
Solutions:
- Verify your API key is correct at prod.gdsfactory.com under API Keys
- Check that the key is properly saved in your settings file:
- macOS/Linux:
~/.gdsfactoryplus/gdsfactoryplus.toml - Windows:
C:\Users\<YourUsername>\.gdsfactoryplus\gdsfactoryplus.toml
- macOS/Linux:
- Generate a new API key if the current one isn't working
UV Not Found
Symptoms: Error message about uv not being installed.
Solutions:
-
Install uv:
-
Windows (PowerShell):
-
Mac/Linux: run
curl -LsSf https://astral.sh/uv/install.sh | shorwget -qO- https://astral.sh/uv/install.sh | sh.If neither works, install Homebrew first, then
brew install uv.
-
-
Restart VSCode after installation
- Verify installation by running
uv --versionin the terminal
Python Environment Issues
Virtual Environment Not Created
Symptoms: Import errors, "module not found" messages, or the server fails to start.
Solutions:
- Open a terminal in your project directory and run:
- Verify the
.venvdirectory exists in your project folder - Check that
pyproject.tomlis present and correctly configured
Wrong Python Version
Symptoms: Syntax errors or incompatible package errors on startup.
Solutions:
- GDSFactory+ requires Python 3.12 (3.12.0 or newer, below 3.13). Check your version:
- If using a different minor version, install a supported Python and recreate the virtual environment: We recommend 3.12.14 or newer for the latest security fixes — this matters most in offline or air-gapped environments where you can't easily update Python after the fact.
Platform-Specific Issues
Windows
Recommendation: For the best experience on Windows, install WSL (Windows Subsystem for Linux).
Common Windows issues:
- Path issues: Use forward slashes (
/) in paths or escape backslashes (\\) - Permission errors: Run VSCode as Administrator if you encounter permission issues
- Long path errors: Enable long paths in Windows settings
macOS
- Xcode required: Make sure Xcode is installed
Linux
Schematic Editor or Layout Viewer Blank (WebGL Not Available)
Symptoms: The schematic (Livewire) editor or the layout viewer opens but stays blank, or the Output panel reports that WebGL is not available or "WebGL is not supported." This is most commonly seen on Debian and Ubuntu-based distributions, especially inside virtual machines.
Both editors render through WebGL. If VSCode's GPU stack can't provide a WebGL context, the canvas never paints.
Solution 1 - Enable WebGL Permanently in VSCode (Recommended)
Chromium's GPU blocklist disables WebGL on many Linux GPU and driver combinations. Passing the flags once from the command line confirms whether this is the problem:
To make the change permanent, add the same switches to VSCode's runtime arguments file so that they apply however you launch the editor:
- Open the Command Palette (Ctrl+Shift+P) and run Preferences: Configure Runtime Arguments. This opens
argv.json(~/.vscode/argv.json, or~/.vscode-oss/argv.jsonfor VSCodium). -
Add:
-
Fully quit and restart VSCode. Closing the window is not enough.
To confirm the result, open the Command Palette and run Developer: Toggle Developer Tools, then check the chrome://gpu-style status in the console. WebGL should report as hardware or software accelerated rather than disabled.
Solution 2 - Running Inside a VM
If you are using a virtual machine, the virtual GPU is usually the problem. Check which renderer is in use:
If it reports virgl or SVGA3D, either disable 3D acceleration in the VM settings or force software rendering:
If the canvas is still blank, also add the SwiftShader fallback:
Expect rendering to be noticeably slower under software rendering. This is expected inside a VM, not a bug.
When reporting a Linux issue, include your distribution and version or codename (for example, "Debian 12 bookworm" or "Ubuntu 24.04"), whether you are on bare metal or a VM, and the output of glxinfo | grep renderer. "Linux" or "Debian" alone is not enough information to reproduce the issue.
Network Issues
Firewall or Proxy Blocking Access
Symptoms: Timeouts, connection errors, or features not loading.
Solutions:
- Ensure your firewall allows connections to GDSFactory+ servers
- If behind a corporate proxy, configure VSCode to use your proxy settings
- Try temporarily disabling VPN if you're using one
VPN or Corporate Network Blocking API Access
Symptoms: GDSFactory+ cannot reach the API, license checks fail, or features that require server communication time out — even though general internet access works.
Solutions:
- Switch to a mobile network: Connect your computer to your phone's hotspot instead of the corporate network. This bypasses corporate firewalls and proxy restrictions that may block
api.gdsfactory.com. - Ask IT to whitelist the API: Request your IT department to allow traffic to
api.gdsfactory.comthrough the corporate firewall or proxy.
Cloud Workspace Not Loading
Symptoms: Workspace link doesn't work or shows an error.
Solutions:
- Wait a minute for the workspace to fully initialize
- Check the Docker logs in the Customer Portal for error details
- Try creating a new workspace if the issue persists
Component Issues
Components Not Building
Symptoms: Components are greyed out or show build errors.
Solutions:
- Click the play button at the top of the Components menu to trigger a build
- Check the Output panel for error messages
- Check GDSFactory logs for build errors
- Verify your PDK is correctly configured in
pyproject.toml:
DRC Not Running
Symptoms: DRC check doesn't complete or shows no results.
Solutions:
- Make sure you have the correct PDK configured in
pyproject.toml - Check that the component GDS file exists and is valid
- Review the timeout setting in your configuration. If your design is large, you may need to increase the timeout value.
- Check the Output panel for specific error messages from the DRC engine
Layout Viewer Issues
Viewer Shows Blank or Doesn't Load
Symptoms: The layout viewer panel opens but shows a white/blank area or a loading spinner that never completes.
Solutions:
- Restart the GDSFactory+ server: open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) and run "GDSFactory+: Restart Server"
- Check that the server is running by looking at the Output panel for "GDSFactory+"
- If using a VPN or proxy, it may interfere with the local WebSocket connection — try disabling it temporarily
Layout Not Updating After Code Changes
Symptoms: You edited your Python code but the viewer still shows the old layout.
Solutions:
- Make sure the file watcher is running — check the Output panel for watcher activity
- Save the file (the watcher triggers on save, not on edit)
- Manually trigger a rebuild by clicking the play button in the Components panel
Using GDSFactory+ Over SSH
GDSFactory+ works with VSCode's Remote-SSH extension, allowing you to run the extension on a remote server while viewing layouts locally.
How It Works
When using VSCode Remote-SSH:
- The GDSFactory+ extension runs on the remote machine
- Communication between the extension and server happens locally on the remote machine
- VSCode automatically handles forwarding the webview content to your local machine
Setup
1. Install the Remote-SSH Extension
In VSCode on your local machine:
- Open the Extensions panel (Ctrl+Shift+X / Cmd+Shift+X)
- Search for "Remote - SSH"
- Install the extension from Marketplace
2. Connect to Your Remote Server
- Press F1 (or Ctrl+Shift+P / Cmd+Shift+P) to open the Command Palette
- Type "Remote-SSH: Connect to Host" and select it
- Enter your SSH connection string:
user@your-server.com - Select the platform of the remote machine (Linux, macOS, or Windows)
- VSCode will open a new window connected to the remote server
Tip: To add a host for easier future connections:
- Open Command Palette and select "Remote-SSH: Add New SSH Host"
- Enter:
ssh user@your-server.com - Select a config file to save to (usually
~/.ssh/config)
3. Open a Project on the Remote Server
Once connected to the remote server:
- Click File → Open Folder
- Browse to your project folder on the remote machine (e.g.,
/home/user/my-gds-project) - Click OK to open the folder
Alternatively, clone a project directly on the remote server:
- Open the integrated terminal (Ctrl+` or View → Terminal)
- Clone the project:
- Open the cloned folder via File → Open Folder
4. Install GDSFactory+ on the Remote Machine
When you first open a GDSFactory+ project:
- VSCode will prompt you to install recommended extensions on the remote server
- Click Install when prompted for GDSFactory+
- The extension will install and activate on the remote machine
You can also manually install it:
- Open Extensions panel (Ctrl+Shift+X / Cmd+Shift+X)
- Search for "GDSFactory+"
- Click Install in SSH: your-server
The extension should work automatically. VSCode handles port forwarding for the layout viewer.
Port Forwarding
GDSFactory+ uses two ports internally:
- HTTP server port: Serves the layout viewer (random port in range 7000-9999)
- WebSocket port: Extension communication (random port in range 7000-9999)
The ports are assigned randomly at startup to avoid conflicts with other applications.
VSCode Remote-SSH automatically forwards ports used by webviews, so the layout viewer should work without additional configuration.
Checking Forwarded Ports
To see which ports are being forwarded:
- Open the VSCode Ports panel (View → Ports, or click "Ports" in the bottom panel)
- You should see the GDSFactory+ server port listed and forwarded automatically
Manual Port Forwarding (if needed)
If the layout viewer doesn't load, you can manually forward ports:
- Open the VSCode Ports panel
- Click Forward a Port
- Enter the server port shown in the GDSFactory+ output log
Troubleshooting Remote Connections
Layout viewer shows blank or error:
- Check that the server ports are not blocked by a firewall on the remote machine
- Verify port forwarding is active in the VSCode Ports panel
- Restart the GDSFactory+ server using the command palette: "GDSFactory+: Restart Server"
Extension not activating:
- Ensure you've opened a folder with a
pyproject.tomlfile - Check the Output panel for error messages
- Verify the Python environment is correctly set up on the remote machine
Getting More Help
If these solutions don't resolve your issue:
- Ask the AI agent — describe your problem and it can help diagnose the issue. See AI Agent for details.
- Check the Output panel — View > Output > select "GDSFactory+" for detailed logs and error messages
- Join the community — get help from other users on Slack
- Watch the tutorials — Video Tutorials cover common workflows step-by-step
- Review your setup — compare against the Local Installation or Cloud Setup guides