)]}'
{"id":"openstack%2Fkeystone~979739","triplet_id":"openstack%2Fkeystone~master~I37a24fb860a72183fb22aa47f0d521b292ff029e","project":"openstack/keystone","branch":"master","attention_set":{"27900":{"account":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"last_update":"2026-03-20 15:53:37.000000000","reason":"\u003cGERRIT_ACCOUNT_13478\u003e replied on the change","reason_account":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"}}},"removed_from_attention_set":{"13478":{"account":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"last_update":"2026-03-20 15:53:37.000000000","reason":"\u003cGERRIT_ACCOUNT_13478\u003e replied on the change","reason_account":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"}}},"hashtags":[],"change_id":"I37a24fb860a72183fb22aa47f0d521b292ff029e","subject":"Log client errors (4xx) at DEBUG instead of ERROR","status":"NEW","created":"2026-03-09 21:18:05.000000000","updated":"2026-03-20 15:53:37.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":2,"unresolved_comment_count":1,"has_review_started":true,"meta_rev_id":"485358f6547e57e022b9ebc1f223081da05e8c19","_number":979739,"virtual_id_number":979739,"owner":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-03-09 23:16:05.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}],"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-03-09 21:40:30.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2026-03-09 23:16:05.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-03-20 15:50:01.000000000","updated_by":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"reviewer":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"state":"CC"}],"messages":[{"id":"680b07edf63f42f660cee62507ed3ddb5fdf8600","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"date":"2026-03-09 21:18:05.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"9af07e6dfda7acfa824ca812f616f821e3359826","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-09 21:40:30.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1ba37339bb1047a09fdf92e2421133df\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/b6dbc9f69cbc4849ac935b3b6eb334a1 : SUCCESS in 18m 26s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/caaa5e5ee8b74d5e8e9a21ff1f65d252 : SUCCESS in 14m 00s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/66b87cdc3741420787c6ba1cd5905b9c : SUCCESS in 20m 48s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"3169c7f643660254811b7cc07ca35fcec559f4ad","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-09 23:16:05.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1eb8a89a3e644688a29e163732044918\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/d68b33280bb64a9f8c28868834af0640 : SUCCESS in 16m 10s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ef0ecd09e8c643639749b0f6b1a5bd6e : SUCCESS in 5m 22s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/a74bf71d33044070ab69d6467b5a7291 : SUCCESS in 9m 17s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/cb220858b20a4cc483ed096b3fc515d2 : SUCCESS in 12m 00s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/584ba4d0865f4908961cb7c265ccb2af : SUCCESS in 15m 53s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7cb86cbcf049414c8f6ce9514c02a9c9 : SUCCESS in 14m 20s\n- grenade https://zuul.opendev.org/t/openstack/build/e4c27194cea3448fa2ed6f61d14eac5f : SUCCESS in 53m 43s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/6939c6d6d8ca4d35a1bb498eb560808f : SUCCESS in 1h 52m 24s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/19acb04a5ee44a6194254e6a039eda76 : SUCCESS in 17m 52s (non-voting)\n- keystone-tempest https://zuul.opendev.org/t/openstack/build/48b3fa343c114adcb7785cd6e0e5807e : SUCCESS in 34m 43s\n- keystone-tempest-fips https://zuul.opendev.org/t/openstack/build/97499f3243d045569c050797bd8d03b0 : FAILURE in 11m 27s (non-voting)\n- keystone-tempest-federation https://zuul.opendev.org/t/openstack/build/04b49355cabb41ef86747d130ca12821 : FAILURE in 16m 30s (non-voting)\n- keystone-tempest-federation-k2k https://zuul.opendev.org/t/openstack/build/c33c871395d049f792e20ea0cfaca24e : SUCCESS in 31m 46s\n- keystone-tempest-oidc-federation https://zuul.opendev.org/t/openstack/build/5b6da475c8dc44a5b7d27a545dc61137 : SUCCESS in 33m 03s\n- keystone-tempest-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/9a70d935a5104faf98b3cd81c875cb46 : SUCCESS in 37m 25s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/c79642c18ceb4416a48881ade5dfba3c : SUCCESS in 1h 07m 31s\n- keystone-protection-functional https://zuul.opendev.org/t/openstack/build/0d627e91b8374142abe69088e9121e75 : FAILURE in 42m 20s (non-voting)\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/a0bf1605aa60432e81bbab5365a461a1 : SUCCESS in 3m 53s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"c2ededc4e5008a53096146757c3e9280b3acef6b","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2026-03-20 15:50:01.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"485358f6547e57e022b9ebc1f223081da05e8c19","author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"date":"2026-03-20 15:53:37.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"0c27c5750e1125f78767e920c247540ca854a001","revisions":{"0c27c5750e1125f78767e920c247540ca854a001":{"kind":"REWORK","_number":1,"created":"2026-03-09 21:18:05.000000000","uploader":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"ref":"refs/changes/39/979739/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/39/979739/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/39/979739/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/39/979739/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/39/979739/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/39/979739/1"}}},"commit":{"parents":[{"commit":"2f5085676a305773ad6012e1819fa21931634988","subject":"Merge \"api-ref: add missing enabled field on endpoint\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/2f5085676a305773ad6012e1819fa21931634988"}]}],"author":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-03-09 20:45:06.000000000","tz":60},"committer":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-03-09 21:15:47.000000000","tz":60},"subject":"Log client errors (4xx) at DEBUG instead of ERROR","message":"Log client errors (4xx) at DEBUG instead of ERROR\n\nCommit 3f628a9ae changed _handle_keystone_exception to use\nLOG.exception() for all non-Unauthorized exceptions, which logs at\nERROR level with a full traceback. While d4695b318 added a special\ncase for NotFound, all other 4xx client errors (Forbidden,\nValidationError, Conflict, etc.) were still being logged at ERROR\nlevel with tracebacks.\n\nClient errors are expected operational conditions (bad input,\nunauthorized access, resource conflicts) and should not produce\nERROR-level logs. Only genuine server errors (5xx) warrant\nLOG.exception() with tracebacks.\n\nReplace the isinstance check for NotFound with a general check on\nthe HTTP status code: errors with code \u003c 500 are logged at DEBUG,\nwhile 5xx errors continue to use LOG.exception().\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nSigned-off-by: Boris Bobrov \u003cb.bobrov@sap.com\u003e\nChange-Id: I37a24fb860a72183fb22aa47f0d521b292ff029e\nCloses-Bug: 2045995\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/0c27c5750e1125f78767e920c247540ca854a001"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/0c27c5750e1125f78767e920c247540ca854a001"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
