Known Issues
This page documents known issues in the PDQ platform and their solutions or workarounds β behaviours that are known, expected and not yet fixed, with a status where a fix is planned.
This page explains why a class of failure happens. For the step-by-step response when a daily check fails, use the operational runbook: Troubleshooting.
Infrastructure and System Stabilityβ
Docker containers stop unexpectedlyβ
Issue: Docker containers exit with code 0 or other error codes after VM restart.
Symptoms:
- Containers show as "Exited" in
docker ps -a - Services don't respond to network requests
- DataOps Console unavailable
Solution:
cd /datadrive/configs
docker compose down
docker compose up -d
Status: Known issue - Automatic container restart after VM restart being implemented in future release.
Disk space reaches 100%β
Issue: /datadrive reaches 100% capacity, causing system failures.
Symptoms:
- Docker containers fail to start
- Logs show "No space left on device"
- New data files cannot be processed
Solution:
- Check disk space:
df -h - Reclaim space from unused images, containers and build cache:
docker system prune -a - Check which container logs have grown:
du -sh /datadrive/docker/containers/* - Consider expanding the disk via the cloud portal
Workaround: Implement automatic log rotation in /etc/docker/daemon.json
Caddyserver and Authenticationβ
FQDN resolution failsβ
Issue: Caddyserver cannot obtain SSL certificates due to DNS problems.
Symptoms:
- HTTPS connections fail
- SSL certificate errors in browser
- Caddy logs show ACME errors
Solution:
- Verify DNS configuration:
nslookup <your-fqdn> - Check that the Caddy configuration carries the correct FQDN
- Confirm the certificate issuance method matches your network exposure
Infrastructure & security requires ports 80 and 443 to be reachable inside the customer environment only, not publicly. A publicly-trusted ACME HTTP challenge cannot complete against a host the certificate authority cannot reach, so an internal-only deployment needs a DNS-based challenge or an internal CA instead. Do not open the ports publicly to work around this.
Status: Ongoing - Improved DNS validation planned for v. 2025.12.1
Azure AD groups not syncingβ
Issue: User groups from Azure AD don't appear correctly in PDQ.
Symptoms:
- Users can log in but lack proper permissions
- "Groups claim" missing in JWT token
- Roles not mapped correctly
Solution:
- Check App Registration Token Configuration
- Ensure "Group Claims" configured for "Security Groups"
- Verify groups
pdq_web_admins,pdq_web_developers,pdq_web_viewersexist - Grant admin consent for
User.ReadandGroupMember.Read.All
Data Ingestion (INGEST)β
OAuth 2.0 tokens expire prematurelyβ
Issue: Teams/SharePoint OAuth tokens expire more frequently than expected.
Symptoms:
- INGEST tasks fail with "401 Unauthorized"
- "Token expired" in INGEST logs
- Manual re-authentication required daily
Solution:
- Check token refresh logic in INGEST configuration
- Ensure
refresh_tokenis saved correctly - Implement automatic token renewal via API
Workaround: Configure longer token lifetime in Azure AD App Registration
Status: Fix planned for v. 2025.11.1 - Improved token handling
Large files cause memory errorsβ
Issue: Very large XML/JSON files (>2GB) exceed available system memory.
Symptoms:
- INGEST process crashes with "OutOfMemoryError"
- DLS Worker stops on large files
- System becomes unresponsive during processing
Solution: Enable streaming for large files:
curl -X PUT "http://localhost:8080/api/v3.1/sourcefiles/{filename}/metadata" \
-H "Content-Type: application/json" \
-d '{"hierarchyLevel": "records", "useForSplittingRecords": 1}'
Status: Permanent solution - Streaming available but must be manually enabled
Data Lake Service (DLS)β
DLS Worker stuck in "Raw" statusβ
Issue: Files remain in Raw Archive and don't process further to Trusted.
Symptoms:
- DLS Trace shows data in Raw but not in Trusted
lastSeenOn = rawfor affected files- No error messages in logs
Solution:
- Filter DLS Trace:
lastSeenOn = raw - Open Admin Console for affected files
- Press "Load Trusted" to force processing
Root Cause: Often related to schema validation or data format errors
Inconsistent data count between zonesβ
Issue: Significant differences in record counts between processing zones.
Symptoms:
- Landing: 1000, Trusted: 850, Published: 850
- A difference of more than 10β20 records between zones
- Data missing in downstream systems
Solution:
- Check data quality in source files
- Review validation rules in Data Modifier
- Investigate filtering logic in DLS configuration
Workaround: A difference of up to 10β20 records between Stage and the other zones is expected and can be accepted. Landing, Raw Archive, Trusted and Profile should match exactly β see The daily pass.
Data Warehouse Automation (DWA)β
SQL not generated for mappingsβ
Issue: DWA doesn't create SQL statements despite correct configuration.
Symptoms:
- "No SQL Generated" in DWA Loading Tasks
- Mappings appear complete in UI
- No error messages shown
Solution: Check mapping completeness:
- Object Load: Requires complete key mapping
- Attribute Load: Requires key mapping + at least one attribute
- Relationship Load: Requires two complete keys from same source
Common Causes:
- Case-sensitive field names don't match source data
- Missing mandatory fields in mapping
- Mappings spread across multiple mapping groups
Batch schedules run too earlyβ
Issue: DWA schedules trigger before source data is available.
Symptoms:
- "Expected" tasks > "Completed" tasks
- Tasks stuck in "Scheduled" status >2 hours
- Downstream system reports missing data
Solution:
- Identify affected tasks
- Mark all tasks for specific schedule and source file
- Use "Restart Tasks" from DataOps Console
- Adjust schedule timing for future runs
DataOps and Monitoringβ
DataOps Console won't loadβ
Issue: DataOps Console shows blank page or loads indefinitely.
Symptoms:
- White screen when navigating to console
- JavaScript errors in browser developer tools
- Timeout on API calls
Solution:
- Check AME API status:
curl http://localhost:8080/api/health - Verify network connectivity between UI and AME
- Clear browser cache and cookies
- Check for port mapping issues in Docker
System health checks report false statusβ
Issue: System Health tab shows FAIL for working components.
Symptoms:
- Red status for active services
- Conflicting status indicators
- False alarms in monitoring systems
Solution:
- Manual verification of component status
- Restart health check services
- Check health check configuration in AME
Status: Known issue - Improved health check logic under development
Performance and Scalingβ
Slow query response in Published dataβ
Issue: SQL queries against Published tables take long time to execute.
Symptoms:
- Timeout in reporting tools
- High CPU usage on database server
- User complaints about slow performance
Solution:
- Analyze query patterns and add indexes
- Consider data partitioning for large tables
- Implement materialized views for common aggregations
- Optimize DWA-generated SQL
Workaround: Use batch processing for large analytical queries
Memory leak in long-running containersβ
Issue: Docker containers consume increasingly more memory over time.
Symptoms:
- Progressively increasing memory usage
- System becomes slow after several days
- OOM kills of containers
Solution: Schedule container restart:
# Add to crontab for weekly restart
0 2 * * 0 cd /datadrive/configs && docker compose restart
Status: Under investigation - Memory optimization planned for v. 2026.1.1
Securityβ
Encrypted secrets become unencrypted after upgradeβ
Issue: Connection information becomes unencrypted after platform upgrade.
Symptoms:
- API calls show unencrypted passwords
- Security warnings in logs
- Potential security risk
Solution: After each upgrade:
GETexisting configuration via APIPOSTsame data back to same endpoint- Verify encryption is active
Example:
# Get configuration
curl -X GET "http://localhost:8080/api/v3/ingest/connection/for/mysystem"
# Send back for re-encryption
curl -X POST "http://localhost:8080/api/v3/ingest/connection/for/mysystem" \
-H "Content-Type: application/json" \
-d @response.json
Reporting New Issuesβ
If you discover new issues not documented here:
-
Gather information:
- PDQ version and component versions
- Detailed symptoms and error messages
- Steps to reproduce the problem
- System configuration and environment details
-
Check logs:
- Docker container logs:
docker logs <container_name> - System logs:
/var/log/ - Application logs via DataOps Console
- Docker container logs:
-
Document workarounds: If you find temporary solutions, document them for the team
-
Report via: Support channels according to organizational procedures