Skip to content

Operator.increment via updateRow returns 500 on tables with a point column (1.9.5) #12866

Closed

Description

@ugurcany

👟 Reproduction steps

Minimal A/B (same project, same integer column, only difference is a point column):

  1. Create table A with only an integer column count (not required, default 0).
  2. Create table B with integer column count and a required point column location.
  3. Insert a row in each table with count: 10 (table B also gets a valid point, e.g. [-122.0, 37.0]).
  4. On each row, call:
PATCH /v1/tablesdb/{databaseId}/tables/{tableId}/rows/{rowId}
Content-Type: application/json

{
  "data": {
    "count": "{\"method\":\"increment\",\"values\":[1]}"
  }
}

SDK equivalent:

await tablesDB.updateRow(
  databaseId: databaseId,
  tableId: tableId,
  rowId: rowId,
  data: {
    'count': Operator.increment(),
  },
);

Observed:

  • Table A (no point): succeeds
  • Table B (with point): fails with 500 general_unknown
  1. On the failing table B row, the dedicated increment route still works:
PATCH /v1/tablesdb/{databaseId}/tables/{tableId}/rows/{rowId}/count/increment

{ "value": 1 }

👍 Expected behavior

updateRow with Operator.increment() should atomically increment the integer column on any table, including tables that also have a point column — same as incrementRowColumn / the /increment route.

👎 Actual Behavior

On tables that include a point column:

{
  "message": "Server Error",
  "code": 500,
  "type": "general_unknown",
  "version": "1.9.5"
}
  • No useful error body.
  • Explicit assignment (e.g. "count": 11) on the same row works.
  • incrementRowColumn / /increment on the same row works.
  • Also fails when staged inside a multi-table transaction (commit returns the same 500).

On an otherwise identical table without a point column, the same Operator.increment() via updateRow works.

🎲 Appwrite version

Different version (specify in environment)

💻 Operating system

Linux

🧱 Your Environment

  • Appwrite 1.9.5
  • Reproduced with the Dart server SDK and with raw HTTP
  • Confirmed with a minimal A/B: integer-only table vs integer + required point column
  • Workaround: use TablesDB.incrementRowColumn(...) (supports transactionId) instead of Operator.increment() in updateRow when the table has a point column

👀 Have you spent some time to check if this issue has been raised before?

  • I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

Activity

  1. added theissue type on Jul 13, 2026
  2. Gi-v commented on Jul 13, 2026

    @Gi-v

    I'd like to take this on. If that works for the maintainers, ill start making a PR

  3. devil-shround commented on Jul 15, 2026

    @devil-shround

    Hi! I'd like to work on this issue.

    I'll first reproduce the issue locally and investigate the root cause. If I can reproduce it reliably, I'll prepare a PR with a fix and tests.

  4. samarkun23 commented on Jul 19, 2026

    @samarkun23

    Hi maintainers,

    I like to work on this issue.

    I notice the one thing :

    • updateRow + Operator.increment() it works
    • When point column present then it fails
    • Dedicated /increment endpoint works

    So I think :

    • May be Increment logic is fine .
    • Point column is also fine.
    • Problem likely in updateRow processing pipeline
  5. HarshMN2345 commented on Oct 12, 2026

    @HarshMN2345
    Member
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    product / databasesFixes and upgrades for the Appwrite Database.

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions