fix: revert database package, add debug output for $sequence query failures

- 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>
This commit is contained in:
Jake Barnby
2026-02-14 00:09:31 +13:00
co-authored by Claude Opus 4.6
parent f7ba5e39b7
commit 7708f13ebd
5 changed files with 17 additions and 24 deletions
+1 -1
View File
@@ -55,7 +55,7 @@
"utopia-php/cli": "0.22.*",
"utopia-php/config": "1.*",
"utopia-php/console": "0.1.*",
"utopia-php/database": "dev-fix/sequence-validator-integer as 5.1.3",
"utopia-php/database": "5.*",
"utopia-php/detector": "0.2.*",
"utopia-php/domains": "1.*",
"utopia-php/emails": "0.6.*",
Generated
+9 -18
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "a8eed08cb94072ce519450aa66d6da81",
"content-hash": "c9436e3de3d010184dc928a7f1ff4721",
"packages": [
{
"name": "adhocore/jwt",
@@ -3797,16 +3797,16 @@
},
{
"name": "utopia-php/database",
"version": "dev-fix/sequence-validator-integer",
"version": "5.1.2",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/database.git",
"reference": "6f9d4117175bd894450235ac749219a9fd11150d"
"reference": "1530a1c7608daf31f412f8f9a487a3b2eadd83af"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/database/zipball/6f9d4117175bd894450235ac749219a9fd11150d",
"reference": "6f9d4117175bd894450235ac749219a9fd11150d",
"url": "https://api.github.com/repos/utopia-php/database/zipball/1530a1c7608daf31f412f8f9a487a3b2eadd83af",
"reference": "1530a1c7608daf31f412f8f9a487a3b2eadd83af",
"shasum": ""
},
"require": {
@@ -3849,9 +3849,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/database/issues",
"source": "https://github.com/utopia-php/database/tree/fix/sequence-validator-integer"
"source": "https://github.com/utopia-php/database/tree/5.1.2"
},
"time": "2026-02-13T09:34:51+00:00"
"time": "2026-02-13T01:41:26+00:00"
},
{
"name": "utopia-php/detector",
@@ -8887,18 +8887,9 @@
"time": "2024-03-07T20:33:40+00:00"
}
],
"aliases": [
{
"package": "utopia-php/database",
"version": "dev-fix/sequence-validator-integer",
"alias": "5.1.3",
"alias_normalized": "5.1.3.0"
}
],
"aliases": [],
"minimum-stability": "dev",
"stability-flags": {
"utopia-php/database": 20
},
"stability-flags": {},
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
@@ -93,7 +93,7 @@ class Base extends Queries
new Limit(),
new Offset(),
new Cursor(),
new Filter($attributes, Database::VAR_INTEGER, APP_DATABASE_QUERY_MAX_VALUES),
new Filter($attributes, APP_DATABASE_QUERY_MAX_VALUES),
new Order($attributes),
];
@@ -2526,16 +2526,17 @@ trait DatabasesBase
$this->assertEquals('Invalid query method: equal', $response['body']['message']);
// Query by sequence
$queryStr = Query::equal('$sequence', [$sequence])->toString();
$response = $this->client->call(Client::METHOD_GET, '/databases/' . $databaseId . '/collections/' . $document['$collectionId'] . '/documents', array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
], $this->getHeaders()), [
'queries' => [
Query::equal('$sequence', [$sequence.''])->toString()
$queryStr
],
]);
$this->assertEquals(200, $response['headers']['status-code']);
$this->assertEquals(200, $response['headers']['status-code'], 'Query by $sequence failed. Sequence value: "' . $sequence . '", query: "' . $queryStr . '", response: ' . json_encode($response['body']));
$this->assertEquals($document['title'], $response['body']['documents'][0]['title']);
$this->assertEquals($document['releaseYear'], $response['body']['documents'][0]['releaseYear']);
$this->assertTrue(array_key_exists('$sequence', $response['body']['documents'][0]));
@@ -2448,16 +2448,17 @@ trait DatabasesBase
$this->assertEquals('Invalid query method: equal', $response['body']['message']);
// Query by sequence
$queryStr = Query::equal('$sequence', [$sequence])->toString();
$response = $this->client->call(Client::METHOD_GET, '/tablesdb/' . $databaseId . '/tables/' . $row['$tableId'] . '/rows', array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
], $this->getHeaders()), [
'queries' => [
Query::equal('$sequence', [$sequence.''])->toString()
$queryStr
],
]);
$this->assertEquals(200, $response['headers']['status-code']);
$this->assertEquals(200, $response['headers']['status-code'], 'Query by $sequence failed. Sequence value: "' . $sequence . '", query: "' . $queryStr . '", response: ' . json_encode($response['body']));
$this->assertEquals($row['title'], $response['body']['rows'][0]['title']);
$this->assertEquals($row['releaseYear'], $response['body']['rows'][0]['releaseYear']);
$this->assertTrue(array_key_exists('$sequence', $response['body']['rows'][0]));