Skip to content

Balance metadata on typesense is empty after recording a transaction with the balance. #256

@stkegoul

Description

@stkegoul

Describe the bug
When a balance performs a transaction, the Typesense upsert does not include the metadata field. As a result, when the balance is reindexed after the transaction, the existing metadata in Typesense is overwritten and becomes empty.

To Reproduce
Steps to reproduce the behavior:

  1. Create two new balances:
curl -X POST 'http://localhost:5001/balances' \
-d '{
  "ledger_id": "general_ledger_id",
  "currency": "USD",
  "meta_data": {
    "field": "test_value"
  }
}'
  1. Call search to confirm that the balances are indexed with the metadata
curl -X POST 'http://localhost:5001/search/balances' \
-d '{ "q": "*" }'
  1. Create a transaction between both balances.
curl -X POST 'http://localhost:5001/transactions
-d '{
    "amount": 12091.12,
    "currency": "USD",
    "precision": 100,
    "reference": "ref-001",
    "source": "bln_19c0bcd8-e136-4a89-91b3-5be4066b68c4",
    "destination": "bln_a603ab29-7f3d-40f9-9752-8f04e197ddd9",
    "description": "Bug test",
    "allow_overdraft": true
}'
  1. Check the balances via Search again.
  2. You'll see that the balances' metadata is now empty/overwritten although other fields are correct.

Expected behavior
The metadata should persist when updating a balance record in Typesense after creating a transaction.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggood first issueGood for newcomers

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions