fix: no-op setup without api key#503
Conversation
posthog-android Compliance ReportDate: 2026-05-07 15:49:23 UTC
|
| Test | Status | Duration |
|---|---|---|
| Request Payload.Request With Person Properties Device Id | ❌ | 275ms |
| Request Payload.Flags Request Uses V2 Query Param | ❌ | 27ms |
| Request Payload.Flags Request Hits Flags Path Not Decide | ❌ | 40ms |
| Request Payload.Flags Request Omits Authorization Header | ❌ | 20ms |
| Request Payload.Token In Flags Body Matches Init | ❌ | 18ms |
| Request Payload.Groups Round Trip | ❌ | 18ms |
| Request Payload.Groups Default To Empty Object | ❌ | 17ms |
| Request Payload.Person Properties Distinct Id Auto Populated When Caller Omits It | ❌ | 16ms |
| Request Payload.Disable Geoip False Propagates As Geoip Disable False | ❌ | 18ms |
| Request Payload.Disable Geoip Omitted Defaults To False | ❌ | 19ms |
| Request Payload.Flag Keys To Evaluate Contains Only Requested Key | ❌ | 19ms |
| Request Lifecycle.No Flags Request On Init Alone | ❌ | 12ms |
| Request Lifecycle.No Flags Request On Normal Capture | ❌ | 2057ms |
| Request Lifecycle.Two Flag Calls Produce Two Remote Requests | ❌ | 18ms |
| Request Lifecycle.Mock Response Value Is Returned To Caller | ❌ | 16ms |
| Side Effect Events.Get Feature Flag Captures Feature Flag Called Event | ❌ | 15ms |
Failures
request_payload.request_with_person_properties_device_id
404, message='Not Found', url='http://sdk-adapter:8080/get_feature_flag'
request_payload.flags_request_uses_v2_query_param
404, message='Not Found', url='http://sdk-adapter:8080/get_feature_flag'
request_payload.flags_request_hits_flags_path_not_decide
404, message='Not Found', url='http://sdk-adapter:8080/get_feature_flag'
request_payload.flags_request_omits_authorization_header
404, message='Not Found', url='http://sdk-adapter:8080/get_feature_flag'
request_payload.token_in_flags_body_matches_init
404, message='Not Found', url='http://sdk-adapter:8080/get_feature_flag'
request_payload.groups_round_trip
404, message='Not Found', url='http://sdk-adapter:8080/get_feature_flag'
request_payload.groups_default_to_empty_object
404, message='Not Found', url='http://sdk-adapter:8080/get_feature_flag'
request_payload.person_properties_distinct_id_auto_populated_when_caller_omits_it
404, message='Not Found', url='http://sdk-adapter:8080/get_feature_flag'
request_payload.disable_geoip_false_propagates_as_geoip_disable_false
404, message='Not Found', url='http://sdk-adapter:8080/get_feature_flag'
request_payload.disable_geoip_omitted_defaults_to_false
404, message='Not Found', url='http://sdk-adapter:8080/get_feature_flag'
request_payload.flag_keys_to_evaluate_contains_only_requested_key
404, message='Not Found', url='http://sdk-adapter:8080/get_feature_flag'
request_lifecycle.no_flags_request_on_init_alone
Expected 0 /flags requests, got 1
request_lifecycle.no_flags_request_on_normal_capture
Expected 0 /flags requests, got 1
request_lifecycle.two_flag_calls_produce_two_remote_requests
404, message='Not Found', url='http://sdk-adapter:8080/get_feature_flag'
request_lifecycle.mock_response_value_is_returned_to_caller
404, message='Not Found', url='http://sdk-adapter:8080/get_feature_flag'
side_effect_events.get_feature_flag_captures_feature_flag_called_event
404, message='Not Found', url='http://sdk-adapter:8080/get_feature_flag'
|
@dustinbyrne can you check again, i changed a few things most related to personal api key checks |
💡 Motivation and Context
Setup currently continued initializing after the API key trimmed to an empty string. Java callers could also pass a null Android API key and hit SDK init unexpectedly.
This changes null API keys to trim to an empty string and makes core/stateless setup return before initialization when the key is empty after trimming. Android setup skips Android-specific configuration for invalid keys.
💚 How did you test it?
./gradlew :posthog:test --tests "com.posthog.PostHogConfigTest" --tests "com.posthog.PostHogStatelessTest" --tests "com.posthog.PostHogTest"./gradlew :posthog-android:testDebugUnitTest --tests "com.posthog.android.PostHogAndroidConfigTest" --tests "com.posthog.android.PostHogAndroidConfigJavaTest" --tests "com.posthog.android.PostHogAndroidTest"make checkFormat./gradlew :posthog:apiCheck :posthog-android:apiCheck📝 Checklist
If releasing new changes