ooni / ooni/data

missing database table measurement_experiment_result after running oonipipeline --create-tables

Open
#158 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
11
Forks
6
Avg merge
4d 11h
Merged PRs (30d)
4

Description

steps to reproduce:

oonipipeline run --create-tables --probe-cc IT --test-name signal --workflow-name observations --start-at 2026-01-01 --end-at 2026-01-02"
uvicorn --log-level debug --port 8000 --host 0.0.0.0 oonipipeline.api.main:app
curl http://localhost:8000/api/v1/measurements?since=2026-01-01T00%3A00%3A00&until=2026-01-02T00%3A00%3A00&order_by=measurement_start_time&order=DESC&offset=0&limit=100

error:

[api]        | INFO:oonipipeline.api.routers.list_analysis:running query SELECT measurement_uid,observation_id_list,timeofday,created_at,location_network_type,location_network_asn,location_network_cc,location_network_as_org_name,location_network_as_cc,location_resolver_asn,location_resolver_as_org_name,location_resolver_as_cc,location_resolver_cc,location_blocking_scope,target_nettest_group,target_category,target_name,target_domain_name,target_detail,loni_ok_value,loni_down_keys,loni_down_values,loni_blocked_keys,loni_blocked_values,loni_ok_keys,loni_ok_values,loni_list,analysis_transcript_list,measurement_count,observation_count,vp_count,anomaly,confirmed FROM measurement_experiment_result WHERE timeofday >= %(since)s AND timeofday <= %(until)s ORDER BY timeofday DESC LIMIT 100 OFFSET 0 with {'since': datetime.datetime(2026, 1, 1, 0, 0), 'until': datetime.datetime(2026, 1, 2, 0, 0)}
[api]        | INFO:     10.89.0.6:35460 - "GET /api/v1/measurements?since=2026-01-01T00%3A00%3A00&until=2026-01-02T00%3A00%3A00&order_by=measurement_start_time&order=DESC&offset=0&limit=100 HTTP/1.1" 500 Internal Server Error
[api]        | ERROR:    Exception in ASGI application
... snip ...
[api]        | clickhouse_driver.errors.ServerException: Code: 60.
[api]        | DB::Exception: Unknown table expression identifier 'measurement_experiment_result' in scope SELECT measurement_uid, observation_id_list, timeofday, created_at, location_network_type, location_network_asn, location_network_cc, location_network_as_org_name, location_network_as_cc, location_resolver_asn, location_resolver_as_org_name, location_resolver_as_cc, location_resolver_cc, location_blocking_scope, target_nettest_group, target_category, target_name, target_domain_name, target_detail, loni_ok_value, loni_down_keys, loni_down_values, loni_blocked_keys, loni_blocked_values, loni_ok_keys, loni_ok_values, loni_list, analysis_transcript_list, measurement_count, observation_count, vp_count, anomaly, confirmed FROM measurement_experiment_result WHERE (timeofday >= '2026-01-01 00:00:00') AND (timeofday <= '2026-01-02 00:00:00') ORDER BY timeofday DESC LIMIT 0, 100. Stack trace:

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the oonipipeline run --create-tables command and compare its created tables with the measurement_experiment_result query used by /api/v1/measurements. Reproduce the command, start oonipipeline.api.main:app, and call the endpoint; done means table creation succeeds and the request no longer returns the missing-table error.

Written by the indexing model from the issue text.

Assessment

Tech stack
clickhouse, python
Domain
api, backend, database
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.