Switch from checking _APP_REGION !== 'nyc' to checking project ID
to disable execution logging for a specific project.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add utopia-php/span 1.1.* direct dependency, bump utopia-php/dns to 1.6.*
- Create shared app/init/span.php for span storage and pretty exporter setup
- Instrument HTTP request lifecycle with spans (method, path, response code)
- Add database.setup and http.server.start spans
- Replace old Console error logs with Span::error() in general controller
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Set initial schedule to 20s and reschedule to 10s to balance between:
- Not being picked up by scheduler before reschedule (3-4s interval)
- Providing enough margin (6s) after scheduledAt for processing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Document and Row response models were casting $sequence to (int),
which destroyed UUID7 values on MongoDB. On MongoDB, $sequence is the
internal _id field which is a UUID7 string, not an auto-increment integer.
The (int) cast converted UUID7 values like "019c56a9-df6d-73fa-8d48-..."
to 19, making $sequence queries fail validation with 400.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Revert utopia-php/database to 5.1.2 (the Sequence validator fix
incorrectly assumed $sequence is always integer, but on MongoDB
internal collections it uses UUID7)
- Revert Base.php change
- Add detailed error messages to testGetDocumentWithQueries and
testGetRowWithQueries to capture actual $sequence values and API
error responses for debugging
- Keep Messaging scheduledAt fix (30s initial, 15s rescheduled)
- Keep Functions auth retry improvement (10 retries with project refresh)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update utopia-php/database to fix Sequence validator rejecting integer
$sequence values on MongoDB (VAR_UUID7) adapters
- Fix Base.php Filter constructor passing APP_DATABASE_QUERY_MAX_VALUES
as $idAttributeType instead of the correct Database::VAR_INTEGER
- Fix Messaging testUpdateScheduledAt race condition by increasing
initial scheduledAt from 3s to 30s so scheduler doesn't fire before
the PATCH update processes
- Improve Functions callWithAuthRetry to refresh project credentials
after 4 consecutive 401 failures and increase max retries to 10
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The SELECT query didn't include $sequence, so accessing
$response['body']['$sequence'] returned null. The subsequent
Query::equal('$sequence', [null.'']) produced an empty string
which is invalid for the integer $sequence field, causing 400.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Increase callWithAuthRetry from 5 to 8 retries with capped delay (50s total)
- Increase ProjectCustom retries from 3 to 5 with 1s delays
- Fix swapped assertEquals parameters in FunctionsBase for clearer errors
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add retry logic with delays for transient 401 auth errors during project
setup in ProjectCustom::getProject() (cherry-pick from feat-db-tests)
- Replace 10-minute activation polling in SitesBase with 30-second auto-activation
wait followed by explicit PATCH /sites/:siteId/deployment fallback to prevent
test suite timeouts when the build worker is slow to auto-activate
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>