engine: return -38003 for FCUv2 payloadAttributes mismatch#10014
Conversation
|
@Muzry you'll need to add signoff to your commits to satisfy the DCO check. I need to check what's going on with hive tests as I'm not seeing any engine-withdrawal failures when running on main locally. what specific hive test is your PR addressing? |
5202660 to
5eac4f5
Compare
|
@macfarla Thanks, I’ve added signoff to my commit and re-ran the full Hive commit used for the run: commands: The run produced 34 test cases: 20 passed and 14 failed. The main failure cluster is exactly what this PR addresses: for So this PR is addressing the You can also check: https://hive.ethpandaops.io/#/test/generic/1773131670-9be21c1a6d01e061c51d963e43511cc1. The recent test runs there are also failing. |
|
@Muzry this does fix a bunch of hive tests which is great. There are some unit tests (maybe only 1) that need updating with this change as well - if you can run the unit tests locally that will make the feedback loop faster - eg |
32f84a2 to
26088ed
Compare
|
@macfarla Thanks, sorry for the delay. I've updated the unit tests for this change. Could you take another look? |
26088ed to
74601e5
Compare
|
@macfarla I’ve updated the commit to include signoff. Could you please take another look? |
|
@Muzry there's an acceptance test failing as well https://github.com/besu-eth/besu/actions/runs/23820570721/job/69433410658?pr=10014 - you can run these tests locally, it will massively speed up the feedback loop for getting your PR in. |
6bc9ecd to
480f287
Compare
|
@macfarla I updated the Paris acceptance test fixture for |
ExecutionEngineShanghaiAcceptanceTest is failing |
|
@Muzry run this locally, it takes ~ 20 min, then you can be sure all the tests are passing |
Signed-off-by: muzry <muzrry@gmail.com>
Signed-off-by: muzry <muzrry@gmail.com>
Signed-off-by: muzry <muzrry@gmail.com>
bc72ee0 to
14c4027
Compare
Signed-off-by: muzry <muzrry@gmail.com>
14c4027 to
8281b41
Compare
|
@macfarla I updated the related unit tests and acceptance fixtures for this change, and re-ran the relevant tests locally. The FCU V1/V2 unit tests are passing, and the Paris / Shanghai acceptance cases related to this change are also now passing locally. Could you please take another look? |

This PR updates
engine_forkchoiceUpdatedV2to return-38003: Invalid payload attributeswhen the wrongpayloadAttributesversion is used.In particular, FCUv2 payload-attribute version mismatches such as:
withdrawalsat or after Shanghaiwithdrawalsbefore Shanghaishould be treated as
Invalid payload attributes, notInvalid params.Why
This change aligns the client with the latest Engine API spec update in:
It also follows the implementation discussion and prior client-side change in:
The spec was clarified so that FCUv2 now behaves consistently with newer forkchoiceUpdated versions for payloadAttributes structure/version
mismatches.
What changed
-38003for payloadAttributes version mismatches.Hive impact
This fixes the Hive
engine-withdrawalsfailure caused by returning the wrong error code for FCUv2 payloadAttributes mismatches.Relevant Hive failure:
After this change, the client returns the expected error code for the affected FCUv2 cases.
If my understanding or interpretation of the spec change is incorrect, please let me know and I can adjust the implementation accordingly.