Common issues and solutions for Teachfloor app development.
CLI Issues
"Not logged in" Error
Symptoms:
Code
Error: Not logged in. Please run 'teachfloor login' first.
Solution:
Code
teachfloor login
Enter your credentials and select your organization.
"Login failed: Request failed with status code 400"
Cause: OAuth client not properly configured
Solution:
Check if API URL is correct:
Code
echo $API_URL
For self-hosted instances, ensure OAuth client is set up (see web-app/README.md)
Contact platform administrator to configure OAuth client
"Invalid token" Error
Cause: Token expired or corrupted
Solution:
Code
teachfloor logoutteachfloor login
"Not in app folder" Error
Symptoms:
Code
Error: This command must be run inside a Teachfloor extension app folder.
Solution:
Code
# Check for manifest filels teachfloor-app.json# If not found, navigate to app foldercd path/to/my-app# Or create new appteachfloor apps create my-appcd my-app
CLI Command Not Found
Symptoms:
Code
bash: teachfloor: command not found
Solution:
Code
# Install globallynpm install -g @teachfloor/teachfloor-cli# Verify installationteachfloor version# If still not found, check PATHecho $PATH# Use npx as alternativenpx @teachfloor/teachfloor-cli login
Build Issues
"npm run build" Fails
Symptoms:
Code
Module not found: Error: Can't resolve...
Solution:
Code
# Clear cache and reinstallrm -rf node_modulesrm package-lock.jsonnpm install# Clear webpack cacherm -rf node_modules/.cache# Try build againnpm run build
"Version already exists" Error
Symptoms:
Code
Error: Version 1.0.0 is already approved.
Solution:
Increment version in teachfloor-app.json:
Code
{ "version": "1.0.1"}
Then upload again:
Code
teachfloor apps upload
Build Size Too Large
Symptoms:
Warning about bundle size exceeding recommended limit
Solution:
Code
# Analyze bundlenpm install --save-dev webpack-bundle-analyzerANALYZE=true npm run build# Reduce size:# 1. Remove unused dependenciesnpm uninstall unused-package# 2. Use dynamic importsconst Component = lazy(() => import('./Component'))# 3. Minify images# 4. Tree-shake importsimport { Button } from '@teachfloor/extension-kit' // ✅import * as Kit from '@teachfloor/extension-kit' // ❌
# Hard refresh browserCtrl+Shift+R (Windows/Linux)Cmd+Shift+R (Mac)# Clear browser cache# In DevTools: Right-click refresh → Empty Cache and Hard Reload# Restart dev server# Stop server (Ctrl+C)teachfloor apps start
Manifest Issues
"Invalid manifest" Error
Cause: JSON syntax error or missing required fields
Solution:
Code
# Validate JSON syntaxcat teachfloor-app.json | jq .# Check required fieldsjq '.id, .version, .name' teachfloor-app.json# Common issues:# - Missing comma# - Extra comma# - Unquoted strings# - Wrong bracket type
Component Not Found
Symptoms:
Code
Error: Cannot find module './MyView'
Solution:
Check component name matches manifest:
Code
{ "ui_extension": { "views": [ { "component": "MyView" // Must match filename } ] }}
Verify file exists:
Code
ls src/views/MyView.jsx
Check export:
Code
// Must use default exportexport default MyView // ✅export { MyView } // ❌
□ Check browser console for errors□ Verify environment.initialized is true□ Check manifest is valid JSON□ Confirm permissions are listed□ Verify component files exist□ Check SDK script is loaded□ Confirm app is installed□ Check viewport matches page□ Verify data storage permissions□ Test with hard refresh