updates to docs and also profile
8.8 KiB
Troubleshooting Guide
Published version: docs.betterseqta.org/troubleshooting/
Having issues with BetterSEQTA+ development? This guide covers the most common problems and their solutions.
Table of Contents
- Installation Issues
- Development Server Issues
- Browser Extension Issues
- Plugin Development Issues
- Build Issues
- Still Stuck?
Installation Issues
❌ "npm install" fails with peer dependency errors
Problem: You see errors about peer dependencies or conflicting packages.
Solution:
rm -rf node_modules package-lock.json
npm install --legacy-peer-deps
❌ "Cannot find module" errors
Problem: Node.js can't find required packages.
Solutions:
-
Clear and reinstall:
rm -rf node_modules npm install --legacy-peer-deps -
Check Node.js version:
node --version # Should be v16 or higher -
Try with npm cache clean:
npm cache clean --force npm install --legacy-peer-deps
❌ Permission errors on macOS/Linux
Problem: "EACCES" or permission denied errors.
Solution:
sudo chown -R $(whoami) ~/.npm
sudo chown -R $(whoami) /usr/local/lib/node_modules
Development Server Issues
❌ "npm run dev" fails
Problem: Development server won't start.
Solutions:
-
Check if port is in use:
lsof -i :5173 # Kill the process using the port -
Clear dist folder:
rm -rf dist npm run dev -
Check for TypeScript errors:
npx tsc --noEmit # Check for type errors
❌ Changes not reflecting in browser
Problem: You make code changes but don't see them in the browser.
Solutions:
-
Reload the extension:
- Go to
chrome://extensions - Find BetterSEQTA+ and click the refresh icon
- Refresh your SEQTA page
- Go to
-
Check if dev server is running:
- Look for "Build completed" in your terminal
- If not, restart
npm run dev
-
Hard refresh the page:
- Press
Ctrl+Shift+R(orCmd+Shift+Ron Mac)
- Press
Browser Extension Issues
❌ Extension doesn't load in Chrome
Problem: Extension appears in chrome://extensions but doesn't work.
Solutions:
-
Check for errors:
- Go to
chrome://extensions - Click "Errors" button on BetterSEQTA+
- Fix any JavaScript errors shown
- Go to
-
Verify manifest:
- Check if
dist/manifest.jsonexists - Ensure it has proper structure
- Check if
-
Check permissions:
- Extension needs permission to access SEQTA pages
- Click "Details" → "Site access" → "On all sites"
❌ Extension doesn't appear on SEQTA pages
Problem: Extension loads but doesn't modify SEQTA.
Solutions:
-
Check if you're on a SEQTA Learn page:
- URL should contain "seqta" or "learn"
- Page title should include "SEQTA Learn"
-
Check browser console:
- Press
F12→ Console tab - Look for "[BetterSEQTA+]" messages
- If no messages, extension isn't running
- Press
-
Verify page detection:
- Extension only runs on actual SEQTA Learn pages
- Test on a real SEQTA instance
❌ Settings page won't open
Problem: Clicking the extension icon doesn't open settings.
Solutions:
-
Check popup errors:
- Right-click extension icon → "Inspect popup"
- Look for JavaScript errors
-
Clear extension storage:
// In browser console on any page: chrome.storage.local.clear() -
Reload extension and try again
Plugin Development Issues
❌ My plugin doesn't appear in settings
Problem: Created a plugin but it's not showing up.
Solutions:
-
Check plugin registration:
- Ensure your plugin is imported in
src/plugins/index.ts - Verify
pluginManager.registerPlugin(yourPlugin)is called
- Ensure your plugin is imported in
-
Check plugin structure:
// Ensure your plugin has all required fields const myPlugin: Plugin = { id: "unique-id", // Must be unique name: "Display Name", description: "What it does", version: "1.0.0", run: async (api) => { // Your code here } }; -
Check for errors:
- Look in browser console for plugin loading errors
❌ Plugin settings not working
Problem: Plugin settings don't save or load properly.
Solutions:
-
Check settings definition:
import { defineSettings, booleanSetting } from "@/plugins/core/settingsHelpers"; const settings = defineSettings({ myOption: booleanSetting({ default: true, title: "My Option", description: "What this does" }) }); -
Wait for settings to load:
run: async (api) => { await api.settings.loaded; // Wait for settings to load console.log(api.settings.myOption); // Now you can use settings }
❌ Plugin API functions not working
Problem: api.seqta.onMount() or other API functions don't work.
Solutions:
-
Check selector specificity:
// Be specific with selectors api.seqta.onMount(".home-page", (element) => { // Your code }); -
Wait for elements:
// Some elements load after page navigation api.seqta.onPageChange((page) => { if (page === "home") { api.seqta.onMount(".home-content", (element) => { // Now element should exist }); } });
Build Issues
❌ "npm run build" fails
Problem: Production build fails with errors.
Solutions:
-
Check TypeScript errors:
npx tsc --noEmit -
Clear cache and rebuild:
rm -rf dist node_modules npm install --legacy-peer-deps npm run build -
Check for import errors:
- Ensure all imports use correct paths
- Check for missing files
❌ Built extension doesn't work
Problem: npm run build succeeds but extension doesn't work.
Solutions:
-
Test the built extension:
- Load the
distfolder as unpacked extension - Check console for errors
- Load the
-
Compare with dev version:
- If dev works but build doesn't, there might be a build configuration issue
-
Check manifest generation:
- Verify
dist/manifest.jsonlooks correct - Compare with working version
- Verify
Common Error Messages
"Cannot access contents of the URL"
- Cause: Extension permissions issue
- Fix: Go to
chrome://extensions→ BetterSEQTA+ → Details → Site access → "On all sites"
"Extension context invalidated"
- Cause: Extension was reloaded while page was open
- Fix: Refresh the SEQTA page
"Uncaught ReferenceError: browser is not defined"
- Cause: Missing webextension-polyfill import
- Fix: Add
import browser from "webextension-polyfill";at top of file
"Module not found: Can't resolve '@/...' "
- Cause: TypeScript path mapping issue
- Fix: Check
tsconfig.jsonandvite.config.tsfor path configuration
Performance Issues
Extension makes SEQTA slow
-
Check for memory leaks:
- Use Chrome DevTools → Performance tab
- Look for growing memory usage
-
Optimize plugin code:
- Remove unnecessary listeners
- Clean up intervals/timeouts
- Use efficient selectors
-
Profile your changes:
- Test with extension disabled vs enabled
- Identify which plugin is causing issues
Still Stuck?
If none of these solutions work:
-
🔍 Search existing issues: GitHub Issues
-
💬 Ask on Discord: Join our server - fastest way to get help!
-
📝 Create a new issue: Include:
- Your operating system
- Node.js version (
node --version) - Browser version
- Exact error message
- Steps to reproduce
- What you've already tried
-
📧 Email us: betterseqta.plus@gmail.com for urgent issues
Getting More Debug Info
Enable verbose logging
Add this to your plugin's run function:
console.log("[DEBUG] Plugin starting:", api);
Check extension background page
- Go to
chrome://extensions - Click "Details" on BetterSEQTA+
- Click "Inspect views: background page"
- Check console for background script errors
Export debug info
Run this in browser console on a SEQTA page:
console.log("Extension info:", {
version: chrome.runtime.getManifest().version,
url: window.location.href,
userAgent: navigator.userAgent,
storage: await chrome.storage.local.get()
});
Remember: Don't give up! Every developer faces these issues. The community is here to help, and solving these problems makes you a better developer. 💪