Troubleshooting
Solutions for common issues with the PRIV Chrome extension.
Troubleshooting
This guide covers common issues and their solutions for the PRIV Chrome extension.
Extension Not Loading
Symptoms
- Extension icon doesn't appear in toolbar
- Extension shows as "Error" in chrome://extensions
- Popup doesn't open when clicking icon
Solutions
Check Chrome Version
The extension requires Chrome 110 or higher.
- Open Chrome
- Go to
chrome://settings/help - Check your version
- Update if below 110
Reinstall the Extension
- Go to
chrome://extensions - Remove the PRIV extension
- Restart Chrome
- Reinstall the extension
Check Developer Mode (Manual Install)
For manually installed extensions:
- Go to
chrome://extensions - Ensure Developer mode is enabled
- Click Load unpacked again
- Select the
distfolder
Check for Errors
- Go to
chrome://extensions - Find PRIV Protocol
- Click Errors if shown
- Review error messages
Common errors:
| Error | Solution |
|---|---|
| Manifest parsing failed | Rebuild the extension |
| Service worker registration | Check service-worker.js exists |
| CSP violation | Ensure no inline scripts |
Wallet Connection Issues
Cannot Connect Wallet
MetaMask Not Detected
Symptom: "No wallet found" message
Solutions:
- Ensure MetaMask is installed
- Refresh the extension popup
- Restart Chrome
# Check if MetaMask is injecting properly
# Open DevTools console on any page
typeof window.ethereum // Should not be 'undefined'Connection Rejected
Symptom: Connection request disappears or fails
Solutions:
- Look for MetaMask popup (might be minimized)
- Click the MetaMask icon in toolbar
- Approve the pending connection
- If stuck, lock/unlock MetaMask
Wrong Account Connected
Symptom: Different address than expected
Solutions:
- Open MetaMask
- Switch to correct account
- Extension will detect the change
- Verify address in extension header
Wallet Keeps Disconnecting
Symptom: Wallet disconnects frequently
Solutions:
- Check if MetaMask is locked
- Don't close MetaMask popup before approving
- Update MetaMask to latest version
- Clear extension data and reconnect
// Manually clear wallet data
chrome.storage.local.remove(['priv_wallet_address']);Data Not Syncing
No Data Points Showing
Symptom: Data points stay at 0
Solutions:
Check Data Sharing Status
- Open extension
- Verify Data Sharing is enabled
- Enable at least one data type
Check URL Exclusions
Some URLs are automatically excluded:
chrome://pages- Login pages
- Banking sites
- Healthcare portals
Visit a regular website to test.
Verify Settings
// Check settings in DevTools console
chrome.storage.local.get(['priv_settings'], console.log);Expected output:
{
"dataSharingEnabled": true,
"enabledDataTypes": ["browsing_history", ...]
}Data Not Submitting
Symptom: Data collected but not sent
Solutions:
-
Check Internet Connection
- Verify you're online
- Try visiting api.privprotocol.xyz
-
Force Data Sync
// Send via DevTools chrome.runtime.sendMessage({ type: 'FLUSH_QUEUE' }); -
Check for API Errors
- Inspect service worker
- Look for network errors in DevTools
-
Clear Queue
chrome.storage.local.remove(['priv_queue']);
Earnings Not Updating
Balance Shows 0
Symptom: No earnings despite active data sharing
Possible Causes:
- New Account: Earnings take time to accumulate
- API Issues: Server might be down
- Cache Stale: Data not refreshed
Solutions:
- Click refresh button in extension
- Wait 5 minutes for cache to update
- Check API status
Force Cache Refresh
// Clear earnings cache
chrome.storage.local.remove([
'priv_earnings_cache',
'priv_balance_cache'
]);
// Request fresh data
chrome.runtime.sendMessage({ type: 'GET_EARNINGS' });Pending Balance Not Converting
Symptom: Pending balance not moving to available
Explanation: Pending earnings are processed in batches.
- Processing time: 24-48 hours
- Minimum threshold: May need minimum amount
- Aggregation delay: Data must be aggregated first
Claim Button Disabled
Symptom: Cannot claim available earnings
Requirements:
| Requirement | Value |
|---|---|
| Minimum amount | 10 PRIV |
| Wallet connected | Yes |
| Network | Base (8453) |
Solutions:
- Check you have 10+ PRIV available
- Ensure wallet is connected
- Switch to Base network in wallet
Performance Issues
Extension Slowing Browser
Symptom: Browser becomes slow with extension enabled
Solutions:
-
Reduce Data Types
- Disable unnecessary data types
- Focus on high-value categories
-
Check Memory Usage
chrome://extensions Details > Memory: XX MB -
Clear Collected Data
chrome.storage.local.remove(['priv_collected_data']); -
Update Extension
- Check for newer versions
- Rebuild if using development build
High Memory Usage
Symptom: Extension using >100MB memory
Causes:
- Large data queue
- Stale cached data
- Memory leaks (rare)
Solutions:
-
Force data submission:
chrome.runtime.sendMessage({ type: 'FLUSH_QUEUE' }); -
Clear all storage:
chrome.storage.local.clear(); -
Reload extension
UI Issues
Popup Not Rendering
Symptom: Blank or broken popup
Solutions:
-
Reload Extension
- chrome://extensions
- Click reload icon
-
Check Console Errors
- Right-click extension icon
- "Inspect popup"
- Check Console tab
-
Clear React State
chrome.storage.local.remove(['priv_settings']);
Dark Mode Issues
Symptom: Colors wrong or unreadable
Solutions:
- Extension follows system theme
- Check OS dark mode setting
- Force refresh popup
Charts Not Displaying
Symptom: Earnings history chart blank
Causes:
- No data yet
- Data format issue
Solutions:
- Wait for data to accumulate (7 days)
- Check weekly earnings data:
chrome.runtime.sendMessage( { type: 'GET_EARNINGS' }, (r) => console.log(r.data.weeklyEarnings) );
Network Errors
API Connection Failed
Symptom: "Failed to connect" errors
Solutions:
-
Check Internet
- Visit other websites
- Try api.privprotocol.xyz in browser
-
Check Firewall
- Allow Chrome through firewall
- Check VPN settings
-
DNS Issues
- Try different DNS (8.8.8.8)
- Flush DNS cache
Rate Limited
Symptom: "Too many requests" error
Solution: Wait before retrying
| Limit | Window | Action |
|---|---|---|
| External messages | 10/min | Wait 60s |
| API calls | 100/min | Wait 60s |
CORS Errors
Symptom: Network requests blocked
Note: Should not happen in normal use
If occurring:
- Check you have correct extension version
- API endpoint might have changed
- Report as bug
Development Issues
Build Failures
Symptom: npm run build fails
Common Causes:
-
Missing Dependencies
rm -rf node_modules npm install -
TypeScript Errors
npm run typecheck -
Node Version
node --version # Should be 18+ nvm use 18
Hot Reload Not Working
Symptom: Changes not reflecting
Solutions:
- Ensure
npm run devis running - Manually reload extension
- Hard refresh popup (Cmd+Shift+R)
Service Worker Not Updating
Symptom: Old code still running
Solutions:
- Go to chrome://extensions
- Click "Update" button
- Or toggle extension off/on
- Check service worker in DevTools
Diagnostic Commands
Check Extension State
Open background service worker DevTools and run:
// Get all storage data
chrome.storage.local.get(null, console.log);
// Get settings
chrome.storage.local.get(['priv_settings'], console.log);
// Get queue size
chrome.storage.local.get(['priv_queue'], (r) => {
console.log('Queue entries:', r.priv_queue?.length ?? 0);
});
// Get cached data
chrome.storage.local.get([
'priv_earnings_cache',
'priv_balance_cache'
], console.log);Reset Extension
Complete reset (loses all data):
// Clear all data
chrome.storage.local.clear(() => {
console.log('Storage cleared');
});
// Reload extension
chrome.runtime.reload();Test API Connection
fetch('https://api.privprotocol.xyz/health')
.then(r => r.json())
.then(console.log)
.catch(console.error);Getting Help
Before Asking for Help
- Check this troubleshooting guide
- Search existing GitHub issues
- Gather diagnostic information
Information to Provide
When reporting issues, include:
- Chrome version
- Extension version
- Error messages (screenshots)
- Steps to reproduce
- Console logs (redact sensitive data)
Support Channels
| Channel | Purpose |
|---|---|
| GitHub Issues | Bug reports |
| Discord | Community help |
| Security issues |
Next Steps
- Installation - Reinstall if needed
- Development - Debug tools
- How It Works - Understand architecture