⚡ RUN THIS NOW - PDF Fix
Quick fix for empty PDF attachments
🎯 3 COMMANDS TO RUN
1. Run Migration (Add content column to database)
cd /Users/luisrangel/devLR/rpa/flowpos-workspace/apps/backend
pnpm run migration:run
Look for:
✅ Added content column to communicationAttachment table
2. Restart Backend
# Stop current backend (Ctrl+C)
pnpm run start:dev
Backend will restart with new code
3. Test PDF Attachment
# In another terminal:
cd /Users/luisrangel/devLR/rpa/flowpos-workspace
# Generate PDF and send
PDF_BASE64=$(curl -s -X POST 'http://localhost:4000/communications/generate-pdf' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjU0NTEzMjA5OWFkNmJmNjEzODJiNmI0Y2RlOWEyZGZlZDhjYjMwZjAiLCJ0eXAiOiJKV1QifQ.eyJkYl91c2VyX2lkIjoiNmMwYzRmMzItZDc0YS00YTg0LTg5MmYtM2JlYWQ0NDdkNzY1IiwiaXNzIjoiaHR0cHM6Ly9zZWN1cmV0b2tlbi5nb29nbGUuY29tL2JhcnRvLWRldiIsImF1ZCI6ImJhcnRvLWRldiIsImF1dGhfdGltZSI6MTc2MjM2MDg2MSwidXNlcl9pZCI6IlowS1JtNDdVQ3VPcnpxb3hpNlpRR1FnMzBJYTIiLCJzdWIiOiJaMEtSbTQ3VUN1T3J6cW94aTZaUUdRZzMwSWEyIiwiaWF0IjoxNzYyMzYwODYxLCJleHAiOjE3NjIzNjQ0NjEsImVtYWlsIjoibHVpc3JhbmdlbGNAb3V0bG9vay5jb20iLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImZpcmViYXNlIjp7ImlkZW50aXRpZXMiOnsiZW1haWwiOlsibHVpc3JhbmdlbGNAb3V0bG9vay5jb20iXX0sInNpZ25faW5fcHJvdmlkZXIiOiJwYXNzd29yZCJ9fQ.Hq16ACY9QuBOmQ3GfI2ieijPox24FTjhavU5n8GYXvh-y6-r1mgOtifaFTV0t39XDWc4ZeDavkI2mTaX2PYdQUwOFfpbXgCg5pXBIhYW7AgMCOijIuWEKsSBRoYAN1tDuq1v3yqIem_UKbH_VoWu3XUzEHhT3G5J_2h7X873DxcmoE6W3iaf2eLm77Grwlqg3806aT5HdSFAogoI2Gc9eBuvRnG1M2d-JS9Byl5_DBUzio6HNB5wacRL8VzQtxkS14JfkjSaQ6fMAm36CFzmIFhalD6zWxbuG4F0VlCc9DIJvwmwhy3HPTMIJDfw6VDU6Rc3Fu7_3bg4ShVQEDu_Fg' \
-d '{"templateType":"invoice","templateData":{"invoiceNumber":"FIX-TEST","companyName":"RPA Solution","customerName":"Test","totalAmount":"$99.99"}}' | jq -r '.content')
curl -X POST 'http://localhost:4000/communications/send' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjU0NTEzMjA5OWFkNmJmNjEzODJiNmI0Y2RlOWEyZGZlZDhjYjMwZjAiLCJ0eXAiOiJKV1QifQ.eyJkYl91c2VyX2lkIjoiNmMwYzRmMzItZDc0YS00YTg0LTg5MmYtM2JlYWQ0NDdkNzY1IiwiaXNzIjoiaHR0cHM6Ly9zZWN1cmV0b2tlbi5nb29nbGUuY29tL2JhcnRvLWRldiIsImF1ZCI6ImJhcnRvLWRldiIsImF1dGhfdGltZSI6MTc2MjM2MDg2MSwidXNlcl9pZCI6IlowS1JtNDdVQ3VPcnpxb3hpNlpRR1FnMzBJYTIiLCJzdWIiOiJaMEtSbTQ3VUN1T3J6cW94aTZaUUdRZzMwSWEyIiwiaWF0IjoxNzYyMzYwODYxLCJleHAiOjE3NjIzNjQ0NjEsImVtYWlsIjoibHVpc3JhbmdlbGNAb3V0bG9vay5jb20iLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImZpcmViYXNlIjp7ImlkZW50aXRpZXMiOnsiZW1haWwiOlsibHVpc3JhbmdlbGNAb3V0bG9vay5jb20iXX0sInNpZ25faW5fcHJvdmlkZXIiOiJwYXNzd29yZCJ9fQ.Hq16ACY9QuBOmQ3GfI2ieijPox24FTjhavU5n8GYXvh-y6-r1mgOtifaFTV0t39XDWc4ZeDavkI2mTaX2PYdQUwOFfpbXgCg5pXBIhYW7AgMCOijIuWEKsSBRoYAN1tDuq1v3yqIem_UKbH_VoWu3XUzEHhT3G5J_2h7X873DxcmoE6W3iaf2eLm77Grwlqg3806aT5HdSFAogoI2Gc9eBuvRnG1M2d-JS9Byl5_DBUzio6HNB5wacRL8VzQtxkS14JfkjSaQ6fMAm36CFzmIFhalD6zWxbuG4F0VlCc9DIJvwmwhy3HPTMIJDfw6VDU6Rc3Fu7_3bg4ShVQEDu_Fg' \
-d '{
"businessId": "33b6db4b-51c5-45ee-8d04-c01c2d157f66",
"createdBy": "6c0c4f32-d74a-4a84-892f-3bead447d765",
"recipientContact": "luisrangelc@gmail.com",
"channel": "email",
"type": "invoice",
"subject": "FINAL FIX TEST - PDF!",
"content": "<p>PDF should work now!</p>",
"attachments": [{
"filename": "invoice-fix-test.pdf",
"content": "'"$PDF_BASE64"'",
"mimeType": "application/pdf"
}]
}'
4. Check Gmail
Open Gmail and look for:
- 📧 Subject: "FINAL FIX TEST - PDF!"
- 📎 Attachment: invoice-fix-test.pdf
- Download and open the PDF!
✅ SUCCESS INDICATORS
You'll know it worked when:
- ✅ Backend logs show "content: YES"
- ✅ Backend logs show "Retrieved 1 attachment(s) from database"
- ✅ Backend logs show "First has content: true, length: XXXXX chars"
- ✅ Email arrives in Gmail
- ✅ Attachment is ~48 KB (not 0 KB)
- ✅ PDF opens in viewer
- ✅ Invoice displays correctly!
🎊 THIS IS THE FINAL FIX!
After this, PDF attachments will work 100%! 🚀
Run the migration now! ⚡
cd apps/backend && pnpm run migration:run