lago icon indicating copy to clipboard operation
lago copied to clipboard

[BUG]: Ingested event not counted in usage metrics (events_count = 0)

Open Pederzh opened this issue 6 months ago • 8 comments

Describe the bug Events are successfully ingested and visible in the developer events UI, but they are not being counted in the usage API response. When creating an event for an existing user and subscription, the event appears in /developer/events but the events_count remains 0 when fetching current usage via the API.

To Reproduce

  • Customer ID: stripe-customer-test
  • Subscription ID: test_id
  • Billable Metric: "Chat Number" (code: chat_number, aggregation: count_agg)

Steps to reproduce the behavior:

  1. Create an event for an existing user and subscription:

    curl --location --request POST '${LAGO_URL}/api/v1/events' \
    --header 'Authorization: Bearer ••••••' \
    --header 'Content-Type: application/json' \
    --data '{
        "event": {
            "transaction_id": "random-id-1",
            "external_subscription_id": "test_id",
            "code": "chat_number"
        }
    }'
    
  2. Verify the event was created successfully (returns event with lago_id)

  3. Check the event appears in the developer events UI at /developer/events Image

  4. Retrieve current usage for the customer:

    curl --location --request GET '${LAGO_URL}/api/v1/customers/stripe-customer-test/current_usage?external_subscription_id=test_id' \
    --header 'Authorization: Bearer •••••' \
    --header 'Content-Type: application/json'
    
  5. Observe that events_count is 0 instead of 1

Expected behavior After successfully creating an event, the usage API should reflect the event in the count. Specifically, events_count should be 1 for the billable metric "Chat Number" with code "chat_number".

Actual behavior

  • Event creation API returns success with lago_id: "0b46a06c-5b14-4a63-bb3a-5054df47ebc9"
  • Event is visible in /developer/events UI with correct payload
  • Usage API returns "events_count": 0 instead of expected "events_count": 1
  • lago_customer_id and lago_subscription_id are null in the event response

API Responses

Event creation response:

{
    "event": {
        "lago_id": "0b46a06c-5b14-4a63-bb3a-5054df47ebc9",
        "transaction_id": "random-id-1",
        "lago_customer_id": null,
        "code": "chat_number",
        "timestamp": "2025-05-26T22:53:00.937Z",
        "precise_total_amount_cents": null,
        "properties": {},
        "lago_subscription_id": null,
        "external_subscription_id": "test_id",
        "created_at": "2025-05-26T22:53:01Z"
    }
}

Usage API response:

{
    "customer_usage": {
        "from_datetime": "2025-05-26T00:00:00Z",
        "to_datetime": "2025-06-25T23:59:59Z",
        "issuing_date": "2025-06-25",
        "currency": "USD",
        "amount_cents": 0,
        "total_amount_cents": 0,
        "taxes_amount_cents": 0,
        "lago_invoice_id": null,
        "charges_usage": [{
            "units": "0.0",
            "events_count": 0,
            "amount_cents": 0,
            "amount_currency": "USD",
            "charge": {
                "lago_id": "a85ad6d7-9476-45a0-9558-f2f898424ed8",
                "charge_model": "standard",
                "invoice_display_name": null
            },
            "billable_metric": {
                "lago_id": "affa4df0-8978-4546-a9f9-a90f2938e8d9",
                "name": "Chat Number",
                "code": "chat_number",
                "aggregation_type": "count_agg"
            },
            "filters": [],
            "grouped_usage": []
        }]
    }
}

Environment

  • Lago Version: v1.28.1 (Docker Hub)
  • Deployment: Railway

Additional context

  • The event shows lago_customer_id: null and lago_subscription_id: null in the response, which might be related to the issue
  • The billable metric uses count_agg aggregation type
  • The charge model is "standard"
  • Events are visible in the UI but not reflected in usage calculations

Pederzh avatar May 26 '25 23:05 Pederzh