Skip to main content

Quick Diagnostics

Having issues? Start here:
1

Check Status

Verify each part of the pipeline:
  • ✅ Extension deployed? Check Fly.io logs
  • ✅ Extension released? Check Shopify versions
  • ✅ Added to checkout? Check editor settings
  • ✅ Code correct? Review validation output
2

Review Logs

Check for errors:
  • Browser console (F12)
  • Fly.io deployment logs
  • Shopify function logs
  • GitHub Actions output
3

Test Locally

Reproduce the issue:
4

Consult This Guide

Find your issue below and follow the solution

Extension Issues

Symptoms:
  • Extension doesn’t show in checkout
  • Deployment succeeded but nothing visible
  • Works locally but not in production
Solution 1: Add to Checkout Editor
  1. Go to Settings → Checkout → Customize
  2. Look in left sidebar for your extension
  3. Drag extension into desired location
  4. Click Save
Solution 2: Check Extension TargetVerify target matches your use case:
Common targets:
  • purchase.checkout.delivery-address.render-after
  • purchase.checkout.payment-method-list.render-after
  • purchase.checkout.block.render
  • purchase.checkout.cart-line-item.render-after
Solution 3: Verify Release Status
Ensure version is “current” not “draft”Solution 4: Check Conditional RenderingReview your code for conditions that might hide it:
Symptoms:
  • Extension space is visible but empty
  • No content renders
  • No console errors
Solution 1: Check for Early Returns
Solution 2: Verify Component Imports
Solution 3: Check for ErrorsWrap in error boundary:
Symptoms:
  • Hook returns undefined
  • Data doesn’t populate
  • GraphQL query returns null
Solution 1: Verify GraphQL QueryCheck run.graphql syntax:
Solution 2: Test Query in GraphiQL
Paste your query and verify it worksSolution 3: Add Null Checks
Symptoms:
  • Build fails with type errors
  • Red squiggles in IDE
  • “Type X is not assignable to type Y”
Solution 1: Add Type Guards
Solution 2: Update Type Definitions
Solution 3: Fix Interface Definitions

Function Issues

Symptoms:
  • Discount/shipping/payment not applying
  • No function logs
  • Function seems inactive
Solution 1: Verify Function is ActiveFor discount functions:
  1. Go to Discounts in Shopify admin
  2. Find your discount
  3. Check status is “Active”
  4. Verify dates are current
  5. Check usage limits not exceeded
Solution 2: Check Function Logs
If no logs appear, function isn’t being calledSolution 3: Test Locally
Solution 4: Verify Input QueryCheck run.graphql has required fields:
Symptoms:
  • Function executes but doesn’t do anything
  • Logs show empty operations
  • Logic seems correct
Solution 1: Add Debug Logging
Solution 2: Check Logic Conditions
Solution 3: Verify Return Value
Symptoms:
  • Function exceeds 5ms limit
  • Execution times out
  • Slow performance
Solution 1: Use Rust Instead of JavaScriptRust is 10-100x faster:
Solution 2: Optimize Loops
Solution 3: Cache Calculations
Solution 4: Reduce Query SurfaceOnly query fields you need:

Deployment Issues

Symptoms:
  • Fly.io build fails
  • Red status in dashboard
  • Deployment doesn’t complete
Solution 1: Check Build Logs
  1. Open Fly.io project
  2. Select service
  3. Click failed deployment
  4. Review build logs for specific error
Solution 2: Fix TypeScript Errors
Add type guards (see TypeScript section above)Solution 3: Fix Missing Dependencies
Verify package.json:
Solution 4: Node Version MismatchSpecify Node version in package.json:
Symptoms:
  • Fly.io shows success
  • Extension doesn’t reflect changes
  • Old version still showing
Solution 1: Hard Refresh Browser
Solution 2: Clear Shopify Cache
Solution 3: Check Deployed Version
Verify latest version is currentSolution 4: Manually Release
Symptoms:
  • Cannot push to repository
  • Permission denied error
  • Authentication failed
Solution 1: Regenerate Token
  1. Go to GitHub Settings → Developer settings → Personal access tokens
  2. Delete old token
  3. Create new token with repo and workflow scopes
  4. Update in Synapse settings
Solution 2: Check Repository ExistsVerify repository at:
Solution 3: Check Branch ProtectionIf pushing to main, disable branch protection temporarilySolution 4: Force Push (Careful!)
⚠️ Only if you’re sure. This overwrites remote history.

Performance Issues

Symptoms:
  • Extension takes > 1 second to appear
  • Checkout feels sluggish
  • Loading spinner shows too long
Solution 1: Check Bundle Size
Target: < 50KBSolution 2: Remove Large Dependencies
Solution 3: Lazy Load Components
Solution 4: Optimize Re-renders
Symptoms:
  • Browser tab crashes
  • Fly.io out of memory errors
  • Slow performance over time
Solution 1: Fix Memory Leaks
Solution 2: Avoid Large Data Structures
Solution 3: Use Fly.io paid planFree tier has limited memory. Upgrade for more resources.

When to Ask for Help

If you’ve tried the above solutions and still have issues:

Gather Information

Before asking for help, collect:
  • Generation ID
  • Error messages
  • Browser console logs
  • Fly.io build logs
  • Steps to reproduce
  • Expected vs actual behavior

Contact Support

Reach out to:Email: support@synapsebuilder.orgInclude:
  • Detailed description
  • All error messages
  • What you’ve tried
  • Screenshots if helpful

Community Help

Report Bugs

Found a bug in Synapse?GitHub: l3x3d/synapse/issuesInclude minimal reproduction case

Emergency Rollback

If something breaks in production:
1

Identify Last Working Version

Find the commit hash of last working version
2

Revert to That Version

This triggers automatic redeployment
3

Verify Fix

Check checkout to ensure issue is resolved
4

Fix Issue

Fix the problem in a new branch, test thoroughly, then merge

Prevention Tips

Avoid issues before they happen:
  • ✅ Test locally before deploying
  • ✅ Review MCP validation output
  • ✅ Write unit tests for critical logic
  • ✅ Monitor Fly.io logs during deployment
  • ✅ Test in dev store before going live
  • ✅ Use TypeScript strict mode
  • ✅ Follow best practices guide
  • ✅ Keep dependencies updated
  • ✅ Document your changes
  • ✅ Use version control properly

Next Steps

Debugging

Learn debugging techniques

Best Practices

Follow quality standards

Validation

Understand MCP validation

Self-Correction

How errors are auto-fixed