FAQ & Troubleshooting
Common issues, troubleshooting steps, and frequently asked questions about building Insolitum Universe modules.
FAQ & Troubleshooting
Common Issues
Module shows "Waiting for auth" indefinitely
Cause: The Shell is not sending the AUTH_SESSION message, or the module can't receive it.
Fix:
- Make sure the module URL is correct in the Shell's module settings
- Check that
ShellAuthProvideris wrapping your app inlayout.tsx - Verify the module is running on the expected port
- Open browser DevTools → Console and look for
[ShellAuth]messages - Check that
window.parent !== window(module must be in an iframe)
Module doesn't load in iframe
Cause: CSP or X-Frame-Options headers blocking iframe embedding.
Fix: Ensure next.config.ts includes:
Data queries return empty results
Cause: Missing organization_id filter or incorrect RLS policy.
Fix:
- Use
useModuleApi()instead of raw Supabase client — it auto-filters - Verify the table has
organization_idcolumn - Check RLS policy allows the current user
- Confirm
organizationIdis notnullinuseShellAuth()
NATS events not arriving
Cause: WebSocket connection not established or wrong channel.
Fix:
- Check
connectedstate fromuseNats()— is ittrue? - Verify
NEXT_PUBLIC_WS_URLenvironment variable - Check browser DevTools → Network → WS tab for Socket.io connection
- Ensure the gateway is running (
ws://localhost:4200for dev) - Verify you're subscribing to the correct channel
Module Validator shows CORS errors
Cause: Browser security prevents cross-origin requests from the validator.
Fix: This is expected for some checks (iframe, security headers). The full validation runs server-side during the actual marketplace review. The browser-based validator can still check:
- Module ID format
- HTTPS
- Health endpoint (if CORS allows)
- Performance (via no-cors mode)
Build fails with TypeScript errors
Fix:
Module not appearing in marketplace after approval
Cause: Module status might not have been updated, or the subscription is not active.
Fix:
- Check module status in Partner Panel — should be
published - Verify the
deploy_urlis accessible - Check health endpoint is responding
- Contact Insolitum support if the issue persists
Frequently Asked Questions
Can I use a different framework than Next.js?
Technically, any web application that:
- Serves over HTTPS
- Has a
/api/healthendpoint returning{ status: "ok" } - Allows iframe embedding (CSP headers)
- Implements the
postMessageauth protocol
can work as a module. However, the module-starter template and all tooling are built for Next.js 14, so we strongly recommend it.
How do I debug inside an iframe?
- Open browser DevTools (F12)
- Use the frame selector dropdown in the Console tab
- Select your module's iframe to execute console commands in its context
- Use the Network tab to see requests from both Shell and module
Can I access data from other modules?
Modules share the Supabase database, so if your module has the correct table access and RLS policies, you can query other modules' tables. However, this creates tight coupling and is not recommended. Use NATS events for module-to-module communication instead.
What's the maximum module size?
There's no hard limit, but:
- Page load time must be under 5 seconds
- Health endpoint must respond within 5 seconds
- Use
output: 'standalone'to minimize bundle size
How do I handle module versioning?
- Update
NEXT_PUBLIC_MODULE_VERSIONin your environment - Update the version in your health endpoint response
- Add a changelog entry when submitting an update to the marketplace
- The marketplace supports version history via the
changelogfield
Where do I get help?
- Documentation: You're reading it
- Module Validator: /tools/validator
- Code Examples: /tools/playground
- Support: partners@insolitum.ai
- GitHub Issues: Report bugs at the Insolitum Universe repository