IssueService¶
Manages crash and issue tracking, including issue groups, individual issues, and feature flag analysis.
GetIssue¶
Retrieves a single issue by ID.
Request:
Response:
Example CURL¶
Bash
curl -X POST https://api-public.bitdrift.io/bitdrift.public.unary.client_report.v1.IssueService/GetIssue \
-H "x-bitdrift-api-key: <key>" \
-H "Content-Type: application/json" \
-d '{
"id": "7bbc674a-a617-4a0d-a721-03a3e4e31792",
"issue_group_id": "12710232306638153143"
}'
Example Response¶
JSON
{
"issue": {
"app_id": "io.bitdrift.gradletestapp",
"app_version": "1.0",
"build_id": "66",
"context": "[anon:dalvik-free list large object space]+0x48768cb",
"details": "Bus error (bad memory access)",
"foreground": true,
"id": "7bbc674a-a617-4a0d-a721-03a3e4e31792",
"locale": "en_US",
"model": "Android SDK built for arm64",
"network_type": "wlan",
"platform": {
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
},
"radio_type": "hspa",
"reason": "SIGBUS",
"report": {
"app_metrics": {
"app_id": "com.example.app",
"bundle_version": "1024",
"version": "2.1.0"
},
"device_metrics": {
"architecture": "ARM64",
"battery_level": 72,
"manufacturer": "Apple",
"model": "iPhone15,2",
"os": "iOS",
"os_version": "17.4.1",
"power_state": "RUNNING_ON_BATTERY",
"time": "2024-01-15T09:30:00Z",
"user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"errors": [
{
"details": "Attempted to dereference a null pointer",
"frames": [
{
"frame_address": 4376830024,
"frame_type": "DWARF",
"image_id": "8c4e2a1b-3f56-4d89-a012-bc345678def0",
"image_load_address": 4376829952,
"image_path": "/usr/lib/libSystem.dylib",
"in_app": false,
"original_index": 3,
"source_file": {
"column": 5,
"lineno": 42,
"path": "src/main.rs"
},
"state": [
"crashed"
],
"status": "SYMBOLICATED",
"symbol_address": 4376829952,
"symbol_name": "_ZN5alloc5alloc18handle_alloc_error17h123456789abcdef0E",
"symbolicated_name": "alloc::alloc::handle_alloc_error"
}
],
"reason": "EXC_BAD_ACCESS"
}
],
"fields": [
{
"key": "device_orientation",
"value": "portrait"
}
],
"thread_details": {
"threads": [
{
"active": true,
"frames": [
{
"frame_address": 4376830024,
"frame_type": "DWARF",
"image_id": "8c4e2a1b-3f56-4d89-a012-bc345678def0",
"image_load_address": 4376829952,
"image_path": "/usr/lib/libSystem.dylib",
"in_app": false,
"original_index": 3,
"source_file": {
"column": 5,
"lineno": 42,
"path": "src/main.rs"
},
"state": [
"crashed"
],
"status": "SYMBOLICATED",
"symbol_address": 4376829952,
"symbol_name": "_ZN5alloc5alloc18handle_alloc_error17h123456789abcdef0E",
"symbolicated_name": "alloc::alloc::handle_alloc_error"
}
],
"index": 0,
"name": "com.apple.main-thread",
"priority": 47.0,
"quality_of_service": 33,
"state": "TH_STATE_WAITING"
}
],
"total_threads": 12
}
},
"report_type": "NativeCrash",
"session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"time": "2024-01-15T09:30:00Z"
},
"status": "FOUND"
}
GetIssueFeatureFlags¶
Retrieves the feature flags associated with an issue.
Request:
Response:
Example CURL¶
Bash
curl -X POST https://api-public.bitdrift.io/bitdrift.public.unary.client_report.v1.IssueService/GetIssueFeatureFlags \
-H "x-bitdrift-api-key: <key>" \
-H "Content-Type: application/json" \
-d '{
"issue_id": "11937913729565882410"
}'
Example Response¶
JSON
{
"feature_flags": [
{
"modified_at": "2024-01-15T09:30:00Z",
"name": "Resolved in v2.2.0",
"variant": "user@example.com"
}
]
}
GetIssueGroup¶
Retrieves a single issue group by ID.
Request:
Response:
Example CURL¶
Bash
curl -X POST https://api-public.bitdrift.io/bitdrift.public.unary.client_report.v1.IssueService/GetIssueGroup \
-H "x-bitdrift-api-key: <key>" \
-H "Content-Type: application/json" \
-d '{
"id": "12710232306638153143",
"issue_query": {
"advanced_filters": {
"and_conditions": [
{
"or_conditions": [
{
"lhs": "app_id",
"operator": "EQUAL",
"rhs": "com.example.app"
}
]
}
]
},
"feature_flag_filters": [
{
"exclusive": false,
"name": "EXC_BAD_ACCESS",
"variant": "null pointer"
}
],
"grouping_key": [
"12710232306638153143"
],
"platforms": [
{
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
}
],
"time_range": {
"relative_time_range": {
"duration": "3600s",
"offset": "3600s"
}
}
}
}'
Example Response¶
JSON
{
"issue_group": {
"assignees": [
{
"email": "user@example.com",
"id": "usr_abc123",
"name": "Jane Doe"
}
],
"filtered_stats": {
"events": [
{
"count": 42,
"period_start": "2024-01-15T09:30:00Z"
}
],
"first_report_seen": "2024-01-15T09:30:00Z",
"first_seen": "2024-01-15T09:30:00Z",
"last_seen": "2024-01-15T09:30:00Z",
"session_count": 42,
"user_count": 42
},
"id": "12710232306638153143",
"metadata": {
"context": "[anon:dalvik-free list large object space]+0x48768cb",
"details": "Bus error (bad memory access)",
"platform": {
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
},
"reason": "SIGBUS",
"type": "Crash"
},
"platform": [
{
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
}
],
"stats": {
"events": [
{
"count": 42,
"period_start": "2024-01-15T09:30:00Z"
}
],
"first_report_seen": "2024-01-15T09:30:00Z",
"first_seen": "2024-01-15T09:30:00Z",
"last_seen": "2024-01-15T09:30:00Z",
"session_count": 42,
"user_count": 42
},
"status": "NEW",
"version": "2.1.0"
}
}
ListIssueGroups¶
Lists issue groups matching the specified filter criteria.
Request:
Response:
Example CURL¶
Bash
curl -X POST https://api-public.bitdrift.io/bitdrift.public.unary.client_report.v1.IssueService/ListIssueGroups \
-H "x-bitdrift-api-key: <key>" \
-H "Content-Type: application/json" \
-d '{
"issue_group_query": {
"assignee": [
{
"email": "user@example.com",
"id": "usr_abc123",
"name": "Jane Doe"
}
],
"issue_group_status": [
"NEW"
]
},
"issue_query": {
"advanced_filters": {
"and_conditions": [
{
"or_conditions": [
{
"lhs": "app_id",
"operator": "EQUAL",
"rhs": "com.example.app"
}
]
}
]
},
"feature_flag_filters": [
{
"exclusive": false,
"name": "EXC_BAD_ACCESS",
"variant": "null pointer"
}
],
"grouping_key": [
"12710232306638153143"
],
"platforms": [
{
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
}
],
"time_range": {
"relative_time_range": {
"duration": "3600s",
"offset": "3600s"
}
}
},
"limit": 25,
"offset": 1,
"sort": [
{
"direction": "DESCENDING",
"key": "MOST_RECENT_OCCURRENCE"
}
]
}'
Example Response¶
JSON
{
"issue_groups": [
{
"assignees": [
{
"email": "user@example.com",
"id": "usr_abc123",
"name": "Jane Doe"
}
],
"filtered_stats": {
"events": [
{
"count": 42,
"period_start": "2024-01-15T09:30:00Z"
}
],
"first_report_seen": "2024-01-15T09:30:00Z",
"first_seen": "2024-01-15T09:30:00Z",
"last_seen": "2024-01-15T09:30:00Z",
"session_count": 42,
"user_count": 42
},
"id": "12710232306638153143",
"metadata": {
"context": "[anon:dalvik-free list large object space]+0x48768cb",
"details": "Bus error (bad memory access)",
"platform": {
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
},
"reason": "SIGBUS",
"type": "Crash"
},
"platform": [
{
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
}
],
"stats": {
"events": [
{
"count": 42,
"period_start": "2024-01-15T09:30:00Z"
}
],
"first_report_seen": "2024-01-15T09:30:00Z",
"first_seen": "2024-01-15T09:30:00Z",
"last_seen": "2024-01-15T09:30:00Z",
"session_count": 42,
"user_count": 42
},
"status": "NEW",
"version": "2.1.0"
}
],
"total_issue_groups": 42
}
ListIssues¶
Lists issues matching the specified filter criteria.
Request:
Response:
Example CURL¶
Bash
curl -X POST https://api-public.bitdrift.io/bitdrift.public.unary.client_report.v1.IssueService/ListIssues \
-H "x-bitdrift-api-key: <key>" \
-H "Content-Type: application/json" \
-d '{
"filters": [
{
"platform": {
"value": [
{
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
}
]
}
}
],
"issue_group_id": "12710232306638153143",
"issue_query": {
"advanced_filters": {
"and_conditions": [
{
"or_conditions": [
{
"lhs": "app_id",
"operator": "EQUAL",
"rhs": "com.example.app"
}
]
}
]
},
"feature_flag_filters": [
{
"exclusive": false,
"name": "EXC_BAD_ACCESS",
"variant": "null pointer"
}
],
"grouping_key": [
"12710232306638153143"
],
"platforms": [
{
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
}
],
"time_range": {
"relative_time_range": {
"duration": "3600s",
"offset": "3600s"
}
}
},
"limit": 25,
"offset": 1,
"sort": [
{
"direction": "DESCENDING",
"key": "OCCURRED_AT"
}
]
}'
Example Response¶
JSON
{
"issues": [
{
"app_id": "io.bitdrift.gradletestapp",
"app_version": "1.0",
"build_id": "66",
"context": "[anon:dalvik-free list large object space]+0x48768cb",
"details": "Bus error (bad memory access)",
"foreground": true,
"id": "7bbc674a-a617-4a0d-a721-03a3e4e31792",
"locale": "en_US",
"model": "Android SDK built for arm64",
"network_type": "wlan",
"platform": {
"apple": {
"apps": [
{
"app_id": "com.example.app"
}
]
}
},
"radio_type": "hspa",
"reason": "SIGBUS",
"report": {
"app_metrics": {
"app_id": "com.example.app",
"bundle_version": "1024",
"version": "2.1.0"
},
"device_metrics": {
"architecture": "ARM64",
"battery_level": 72,
"manufacturer": "Apple",
"model": "iPhone15,2",
"os": "iOS",
"os_version": "17.4.1",
"power_state": "RUNNING_ON_BATTERY",
"time": "2024-01-15T09:30:00Z",
"user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"errors": [
{
"details": "Attempted to dereference a null pointer",
"frames": [
{
"frame_address": 4376830024,
"frame_type": "DWARF",
"image_id": "8c4e2a1b-3f56-4d89-a012-bc345678def0",
"image_load_address": 4376829952,
"image_path": "/usr/lib/libSystem.dylib",
"in_app": false,
"original_index": 3,
"source_file": {
"column": 5,
"lineno": 42,
"path": "src/main.rs"
},
"state": [
"crashed"
],
"status": "SYMBOLICATED",
"symbol_address": 4376829952,
"symbol_name": "_ZN5alloc5alloc18handle_alloc_error17h123456789abcdef0E",
"symbolicated_name": "alloc::alloc::handle_alloc_error"
}
],
"reason": "EXC_BAD_ACCESS"
}
],
"fields": [
{
"key": "device_orientation",
"value": "portrait"
}
],
"thread_details": {
"threads": [
{
"active": true,
"frames": [
{
"frame_address": 4376830024,
"frame_type": "DWARF",
"image_id": "8c4e2a1b-3f56-4d89-a012-bc345678def0",
"image_load_address": 4376829952,
"image_path": "/usr/lib/libSystem.dylib",
"in_app": false,
"original_index": 3,
"source_file": {
"column": 5,
"lineno": 42,
"path": "src/main.rs"
},
"state": [
"crashed"
],
"status": "SYMBOLICATED",
"symbol_address": 4376829952,
"symbol_name": "_ZN5alloc5alloc18handle_alloc_error17h123456789abcdef0E",
"symbolicated_name": "alloc::alloc::handle_alloc_error"
}
],
"index": 0,
"name": "com.apple.main-thread",
"priority": 47.0,
"quality_of_service": 33,
"state": "TH_STATE_WAITING"
}
],
"total_threads": 12
}
},
"report_type": "NativeCrash",
"session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"time": "2024-01-15T09:30:00Z"
}
],
"total_issues": 42
}