Troubleshooting
Common Issues
Flags Not Updating
Symptom: Changes to flag configuration don't reflect in the application.
Solutions:
Restart dev server
bashnpm run devClear build cache
bashrm -rf .nuxt npm run devVerify config file path
ts// nuxt.config.ts export default defineNuxtConfig({ featureFlags: { config: './feature-flags.config.ts' // Check this path } })Manually refresh flags on client
tsconst { fetch } = useFeatureFlags() await fetch()
Type Errors
Symptom: TypeScript errors when using flag names, even though flags are defined.
Solutions:
Regenerate types
bashnpx nuxi prepare npm run devRestart TypeScript server
- In VS Code:
Cmd/Ctrl + Shift + P→ "TypeScript: Restart TS Server"
- In VS Code:
Check for typos
ts// ❌ Typo isEnabled('newDashbord') // ✅ Correct isEnabled('newDashboard')
Variant Assignment Not Working
Symptom: Users are not being assigned to variants, or assignment is inconsistent.
Solutions:
Populate context in middleware
ts// server/middleware/user-context.ts export default defineEventHandler((event) => { const user = await getUserFromSession(event) if (user) { event.context.user = { id: user.id // This enables consistent variant assignment } } })Check variant weights
ts// ❌ Weights exceed 100% { variants: [ { name: 'a', weight: 60 }, { name: 'b', weight: 60 } // Total: 120% ] } // ✅ Correct weights { variants: [ { name: 'a', weight: 50 }, { name: 'b', weight: 50 } // Total: 100% ] }Verify flag is enabled
ts{ myFlag: { enabled: true, // Must be true variants: [...] } }
Server/Client Mismatch
Symptom: Flags have different values on server vs client, causing hydration errors.
Solutions:
Use v-if for SSR content
vue<!-- ❌ v-feature doesn't work in SSR --> <div v-feature="'myFlag'"> Server-rendered content </div> <!-- ✅ Use v-if with composable --> <script setup> const { isEnabled } = useFeatureFlags() </script> <template> <div v-if="isEnabled('myFlag')"> Server-rendered content </div> </template>Ensure consistent context
- Server has user context from event
- Client fetches flags from server
Flags Not Working in Production
Symptom: Flags work in development but not in production build.
Solutions:
Verify config file is included
tsexport default defineNuxtConfig({ featureFlags: { config: './feature-flags.config.ts' } })Set environment variables
bashNODE_ENV=production NUXT_PUBLIC_ENV=productionClear build cache
bashrm -rf .nuxt .output npm run build
Debugging
Log All Resolved Flags
// Client-side
const { flags } = useFeatureFlags()
console.log('All flags:', flags.value)
// Server-side
export default defineEventHandler((event) => {
const { flags } = getFeatureFlags(event)
console.log('Server flags:', flags)
return { flags }
})Inspect Specific Flag Details
const { getFlag, isEnabled, getVariant, getValue } = useFeatureFlags()
const flag = getFlag('myExperiment')
console.log('Flag details:', {
enabled: flag?.enabled,
value: flag?.value,
variant: flag?.variant
})Check Context Population
// Server-side middleware
export default defineEventHandler((event) => {
console.log('Request context:', {
user: event.context.user,
device: event.context.device,
userId: event.context.userId,
sessionId: event.context.sessionId
})
})Enable Debug Mode
// feature-flags.config.ts
export default defineFeatureFlags((context) => {
const debug = process.env.DEBUG_FLAGS === 'true'
if (debug) {
console.log('=== Feature Flags Debug ===')
console.log('Context:', context)
console.log('Environment:', process.env.NODE_ENV)
console.log('===========================')
}
return {
// Your flags here
}
})# Enable debug mode
DEBUG_FLAGS=true npm run devGetting Help
If you're still experiencing issues:
- Check the documentation: Review relevant sections
- Search existing issues: Look for similar problems on GitHub Issues
- Enable debug logging: Use the debugging techniques above
- Create a minimal reproduction: Isolate the problem
- Open an issue: Provide debug output, configuration, and steps to reproduce
When opening an issue, include:
- Nuxt version (
npx nuxi info) - Module version
- Your feature flags configuration (sanitized)
- Relevant code snippets
- Error messages or unexpected behavior
- Steps to reproduce