Troubleshooting
This guide covers solutions to common problems you might encounter with MolnOS. If you don’t find your issue here, reach out at [email protected] or join MolnOS’s GitHub Discussions.
Installation & Upgrade Issues
Section titled “Installation & Upgrade Issues”npm installation issues
Section titled “npm installation issues”Problem: Installing via npm fails or shows errors
Solution:
-
Ensure Node.js 24+ is installed:
Terminal window node --version -
Check npm is working:
Terminal window npm --version -
For global installation permission errors, use one of these approaches:
Terminal window # Option 1: Use a Node version manager (recommended)# Install nvm, volta, or similar to avoid permission issues# Option 2: Configure npm to use a different directorymkdir ~/.npm-globalnpm config set prefix '~/.npm-global'echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc # or ~/.zshrcsource ~/.bashrc # or ~/.zshrc# Then install globallynpm install -g molnos -
For local installation, ensure you’re in a directory with a
package.jsonor create one:Terminal window npm init -ynpm install molnos -
Clear npm cache if installation is corrupted:
Terminal window npm cache clean --forcenpm install -g molnos
Command not found: molnos
Section titled “Command not found: molnos”Problem: After installing, running molnos gives “command not found”
Solution:
For npm global installation:
-
Check if npm’s global bin directory is in your PATH:
Terminal window npm config get prefix -
Add npm’s global bin directory to your PATH:
Terminal window # For Zsh (macOS default)echo 'export PATH="$(npm config get prefix)/bin:$PATH"' >> ~/.zshrcsource ~/.zshrc# For Bash (Linux default)echo 'export PATH="$(npm config get prefix)/bin:$PATH"' >> ~/.bashrcsource ~/.bashrc
For npm local installation:
Use npx molnos instead of just molnos.
For CLI installer:
Add ~/.local/bin to your PATH:
export PATH="$HOME/.local/bin:$PATH"Make it permanent by adding this line to your shell profile:
# For Zsh (macOS default)echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
# For Bash (Linux default)echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrcThen restart your terminal or run source ~/.zshrc (or ~/.bashrc).
Node.js version error
Section titled “Node.js version error”Problem: Node.js version 24 or later is required
Solution:
-
Check your current version:
Terminal window node --version -
Install Node.js 24 or later from nodejs.org
-
Verify the installation:
Terminal window node --version
Note: If you have multiple Node versions installed (via nvm, Volta, etc.), ensure version 24+ is active.
Installation fails during download
Section titled “Installation fails during download”Problem: Installation script fails to download MolnOS
Solution:
-
Check your internet connection
-
Verify you can access
https://releases.molnos.cloud -
Check if you have
curlorwgetinstalled:Terminal window curl --versionwget --version -
Try the manual installation from releases.molnos.cloud
Permission denied errors during installation
Section titled “Permission denied errors during installation”Problem: Permission denied when installing or running MolnOS
Solution:
-
Ensure you have write permissions to
~/.local/binand~/.molnos:Terminal window mkdir -p ~/.local/bin ~/.molnoschmod 755 ~/.local/bin ~/.molnos -
Don’t use
sudowith the installer—it should install to your user directory -
If running MolnOS, ensure write permissions in your working directory for database files
MolnOS won’t start after upgrade
Section titled “MolnOS won’t start after upgrade”Problem: MolnOS fails to start after upgrading, or shows version mismatch errors
Solution:
-
Check current versions:
Terminal window # CLI versionmolnos --version# Core versioncat ~/.molnos/VERSION -
Ensure both components are upgraded:
Terminal window # Upgrade both CLI and Coremolnos upgrade# Or upgrade specific componentsmolnos upgrade cli # CLI onlymolnos upgrade core # Core only -
Clear shell hash cache if version command shows old version:
Terminal window hash -r# Or restart your terminal -
If upgrade fails, use the standalone upgrade script:
Terminal window curl -sSL https://releases.molnos.cloud/upgrade.sh | bash
Upgrade fails or cannot download
Section titled “Upgrade fails or cannot download”Problem: molnos upgrade fails to download or install
Solution:
-
Check internet connectivity:
Terminal window curl -sSL https://api.molnos.cloud/prod/version/cli -
Ensure curl or wget is installed:
Terminal window # Test curlcurl --version# Install if missing (macOS)brew install curl# Install if missing (Ubuntu/Debian)sudo apt-get install curl -
Check permissions on installation directory:
Terminal window chmod 755 ~/.local/binchmod +x ~/.local/bin/molnos -
Try manual upgrade:
Terminal window # Download latest CLIcurl -sSL -o ~/.local/bin/molnos https://releases.molnos.cloud/molnos-cli.mjschmod +x ~/.local/bin/molnos# Then install Coremolnos install
Shell completions not working
Section titled “Shell completions not working”Problem: Tab completion doesn’t work for molnos commands
Solution:
For Zsh (macOS default):
-
Ensure completions are installed:
Terminal window ls -la ~/.zsh/completions/_molnos -
Add to your
~/.zshrcif not present:Terminal window fpath=(~/.zsh/completions $fpath)autoload -Uz compinit && compinit -
Restart your shell or reload config:
Terminal window source ~/.zshrc -
Test completions:
Terminal window molnos auth <TAB>molnos functions <TAB>
For Bash:
Shell completions are only automatically installed for Zsh. For Bash, you’ll need to install them manually or use the CLI without completions.
Configuration Issues
Section titled “Configuration Issues”Configuration file not found
Section titled “Configuration file not found”Problem: Indication that the configuration file is not being picked up, though it should have been.
Solution:
- Run
molnos initto create a template configuration file - Ensure you’re running
molnos startfrom the directory containing your config file - Check the file name is exactly
molnos.config.json(case-sensitive)
See also “CLI not picking up local configuration”.
Missing required configuration values
Section titled “Missing required configuration values”Problem: MolnOS won’t start, showing errors like Missing email.host value
Solution: Ensure authentication is configured. You have two options:
Option 1: Email-based authentication (requires SMTP):
{ "email": { "host": "smtp.yourprovider.com", "password": "your-smtp-password" }, "molnos": { "dataPath": "data", "initialUser": { "userName": "User Name", } }}Option 2: OAuth authentication (no SMTP required):
{ "oauth": { "presets": { "google": { "clientId": "your-client-id", "clientSecret": "your-client-secret", "redirectUri": "https://your-domain.com/auth/oauth/google/callback" } } }, "molnos": { "dataPath": "data", "initialUser": { "userName": "User Name", } }}See the Configuration Guide for complete details.
CLI not picking up local configuration
Section titled “CLI not picking up local configuration”Problem: CLI seems to ignore your molnos.config.json file
Solution:
As of version 1.0.0, the MolnOS CLI should use the config file in the installation direction, i.e. ~/.molnos/.
If you want to use MolnOS configurations from any other directory, you will currently have to pass configuration in some other manner, such as with environment variables instead (see Configuration Guide).
Invalid JSON syntax
Section titled “Invalid JSON syntax”Problem: Unexpected token or JSON parsing errors
Solution:
- Validate your JSON using a tool like jsonlint.com
- Common issues:
- Trailing commas after the last item in an array or object
- Missing quotes around keys or string values
- Unescaped quotes inside strings
- Comments (JSON doesn’t support comments)
Example of invalid JSON:
{ "email": { "host": "smtp.example.com", // ❌ No comments allowed "port": 465, // ❌ Trailing comma before closing brace }}Authentication & Email Issues
Section titled “Authentication & Email Issues”Not receiving sign-in emails
Section titled “Not receiving sign-in emails”Problem: Magic link emails never arrive
Solution:
-
Check spam/junk folder - sign-in emails may be filtered
-
Verify email configuration:
Terminal window # Check your config has correct SMTP detailscat molnos.config.json | grep -A 6 "email" -
Test SMTP connectivity:
-
Verify firewall allows outbound connections to your SMTP port
-
Many cloud providers block port 25—use 465 (SSL) or 587 (TLS)
-
Try connecting manually:
Terminal window telnet smtp.yourprovider.com 465
-
-
Check SMTP credentials:
- For Gmail, use an app password, not your regular password
- Verify username is correct (often your full email address)
- Check password has no typos
-
Verify admin email:
- Ensure
INITIAL_USER_EMAILmatches the email you’re trying to sign in with - Check for typos or extra whitespace
- Ensure
-
Check MolnOS logs for SMTP errors when you attempt sign-in
Magic link says “Invalid or expired token”
Section titled “Magic link says “Invalid or expired token””Problem: Clicking the magic link shows an error
Solution:
- Request a new link - magic links expire after 15 minutes (default)
- Check the URL is complete - email clients sometimes break long URLs across lines
- Verify JWT secret hasn’t changed - if you changed
auth.jwtSecretafter sending the link, tokens become invalid - Check system time - ensure your server’s clock is accurate (JWT validation is time-sensitive)
OAuth authentication not working
Section titled “OAuth authentication not working”Problem: OAuth login fails or redirects don’t work
Solution:
-
Verify redirect URI matches exactly:
- Check your OAuth provider settings
- URI must match configuration exactly (including protocol and path)
- Example:
https://your-domain.com/auth/oauth/google/callback
-
Check HTTPS in production:
- OAuth endpoints require HTTPS in production
- Development (localhost) can use HTTP
- Set
NODE_ENV=developmentfor local testing
-
Verify OAuth credentials:
Terminal window # Check your config has OAuth detailscat molnos.config.json | grep -A 10 "oauth" -
Check provider-specific settings:
- Google: Ensure Google+ API is enabled
- GitHub: Verify app is not suspended
- Keycloak: Check realm and client settings
-
Check rate limiting:
- Default: 10 requests per 15 minutes per IP
- Wait or adjust
oauth.rateLimitingin config
-
Inspect browser console for detailed OAuth errors
Cannot access console (CORS errors)
Section titled “Cannot access console (CORS errors)”Problem: Browser console shows blocked by CORS policy errors
Solution:
-
Check allowed domains in your API configuration:
"server": {"allowedDomains": ["https://your-frontend-domain.com","http://localhost:8000"]} -
Match the exact domain:
- Include protocol (
http://orhttps://) - Include port if non-standard (
:8000,:3000, etc.) - No trailing slashes
- Include protocol (
-
Restart the API after changing CORS configuration
-
For development only, you can temporarily use
["*"]to allow all domains, but never in production
API & Connectivity Issues
Section titled “API & Connectivity Issues”API won’t start
Section titled “API won’t start”Problem: molnos start fails or exits immediately
Solution:
-
Check for port conflicts:
Terminal window # See what's using port 3000lsof -i :3000Kill the conflicting process or change the port in your configuration file.
-
Check configuration is valid - see Configuration Issues
-
Check Node.js version - must be 24 or later
-
Check logs for error messages when starting
-
Verify required files exist:
Terminal window ls -la ~/.molnos/molnos_core.mjs
API connection refused or timeout
Section titled “API connection refused or timeout”Problem: Console cannot connect to API
Solution:
-
Verify API is running:
Terminal window # Check if API is listeningcurl http://localhost:3000 -
Configure the CLI to use the correct API URL:
Terminal window # Check current API URLmolnos configure url# Set to local developmentmolnos configure url http://localhost:3000# Or for remote APImolnos configure url https://your-api.com# Or use environment variable (highest priority)export MOLNOS_API_URL=https://your-api.com -
Check firewall rules:
- Allow inbound connections on API port (default 3000)
- For cloud deployments, check security groups/firewall rules
-
Verify API URL in console:
- Open
index.html - Check
window.APP_CONFIG.apiBaseUrlmatches your API endpoint - Include protocol and port:
http://localhost:3000
- Open
-
Check network connectivity:
- For remote API, ensure you can reach it:
curl https://your-api.com - Check DNS resolution:
nslookup your-api.com
- For remote API, ensure you can reach it:
-
For cloud deployments:
- Verify the app deployed successfully
- Check health check endpoint is passing
- Review deployment logs for errors
Port already in use
Section titled “Port already in use”Problem: Error: listen EADDRINUSE: address already in use :::3000
Solution:
-
Find what’s using the port:
Terminal window # On Linux/macOSlsof -i :3000# On Linux (alternative)netstat -tulpn | grep 3000 -
Kill the process:
Terminal window kill <PID> -
Or change the port in your configuration file, then update your console’s
apiBaseUrlaccordingly.
Console Issues
Section titled “Console Issues”Console shows blank page
Section titled “Console shows blank page”Problem: Loading the console shows nothing
Solution:
-
Check browser console (F12) for errors
-
Verify API endpoint is correct in
index.html:<script>window.APP_CONFIG = { apiBaseUrl: 'http://localhost:3000' };</script> -
Check API is running and accessible:
Terminal window curl http://localhost:3000 -
Clear browser cache and reload (Ctrl+Shift+R / Cmd+Shift+R)
-
Try a different browser to rule out browser-specific issues
-
Check static file server is running (if local), for example:
Terminal window python3 -m http.server 8000
Console loads but shows errors
Section titled “Console loads but shows errors”Problem: Console displays error messages or broken features
Solution:
-
Check browser console for JavaScript errors
-
Verify API connectivity - most features require API access
-
Check authentication - try signing out and back in
-
Clear localStorage:
localStorage.clear() -
Verify console version matches API version - major versions must align
Cloud Deployment Issues
Section titled “Cloud Deployment Issues”Data not persisting (DigitalOcean)
Section titled “Data not persisting (DigitalOcean)”Problem: Data disappears after redeployment
Solution:
This is expected with the quickstart configuration. DigitalOcean App Platform uses ephemeral storage.
For persistent data:
- Deploy to a VM or VPS with persistent storage
- See Installation Deep Dive for production setup
Getting More Help
Section titled “Getting More Help”If you’ve tried the solutions above and still have issues:
Documentation
Section titled “Documentation”- Installation Deep Dive - Complete installation guide
- Configuration Guide - All configuration options
- Integration Guide - Setting up webhooks and automation
Community Support
Section titled “Community Support”- GitHub Discussions - Ask questions and share knowledge
Direct Support
Section titled “Direct Support”- Email: Use [email protected] for general questions
- Commercial customers: Priority support included with license, please direct questions to [email protected]
When reporting issues, include:
- MolnOS version (
cat ~/.molnos/VERSIONfor Core;molnos --versionfor CLI) - Operating system and version
- Node.js version (
node --version) - Error messages (full text)
- Relevant configuration (sanitized of secrets)
- Steps to reproduce the issue