sovity / edc-ui

Connector UI for the sovity EDC Community Edition.
https://sovity.de/en/connect-to-data-space-en/
Apache License 2.0
33 stars 11 forks source link

Transfer fails if method-parametrization is enabled #703

Closed tmberthold closed 2 months ago

tmberthold commented 3 months ago

Description - What happened? *

As soon as the method-parameterization is enabled for an asset and the asset is created, every later on transfer fails with an log-error-message at the provider when the asset is to be transferred.

Expected Behavior *

No error message.

Observed Behavior *

Error message in the logs, see GIF how to reproduce.

Steps to Reproduce

I'd recommend looking at the GIF below, this is clearer than what we got:

  1. Create an asset and enable parametrization for method, path, query param, and body.
  2. Create contract definition, negotiate a contract on another connector, and go to transfer.
  3. Fill in all the details for the data sink and also the method, path, parameters, and body for parametrization.
  4. Initiate transfer.

Actual result: Transfer status is "Requested" in EDC UI. Transfer fails with error in logs: 2024-03-17 23:52:17 TransferProcess: ID d4d60f54-bc4f-418b-91d3-f9e20d7c5c02. Fatal error while Initiate data flow. Error details: Failed to delegate data transfer to Data Plane: Failed to build HttpDataSource: DataFlowRequest 2e417d75-e77e-472a-9c1e-d505e82425fa: 'method' property is missing

Context Information

We think it could be caused by the way the UI saves the Assets when method-parameterization is enabled.

Stakeholder

@ip312 @jkbquabeck

Relevant log output

Fatal error while Initiate data flow. Error details: Failed to delegate data transfer to Data Plane: Failed to build HttpDataSource: DataFlowRequest (...): 'method' property is missing

Screenshots

reproduce (1)

AbdullahMuk commented 3 months ago

@tmberthold did MDS provide the steps to reproduce?

/cc @ununhexium @illfixit

tmberthold commented 3 months ago

@tmberthold did MDS provide the steps to reproduce?

I'd recommend looking at the GIF, this is clearer than what we got:

Steps to reproduce:

  1. Create an asset and enable parametrization for method, path, query param, and body.
  2. Create contract definition, negotiate a contract on another connector, and go to transfer.
  3. Fill in all the details for the data sink and also the method, path, parameters, and body for parametrization.
  4. Initiate transfer.

Actual result: Transfer status is "Requested" in EDC UI. Transfer fails with error in logs: 2024-03-17 23:52:17 TransferProcess: ID d4d60f54-bc4f-418b-91d3-f9e20d7c5c02. Fatal error while Initiate data flow. Error details: Failed to delegate data transfer to Data Plane: Failed to build HttpDataSource: DataFlowRequest 2e417d75-e77e-472a-9c1e-d505e82425fa: 'method' property is missing

ununhexium commented 3 months ago

We need a custom version of the Eclipse EDC to backport a patch from V0.5.1 to V0.2.1, which we will do ASAP.

The bug should be fixed by using this patch.

This is the same kind of change as PMO 694.

SebastianOpriel commented 2 months ago

For general error handling, in case a provider has an internal error that prevents him to send a proper response, see https://github.com/sovity/edc-extensions/issues/688

ununhexium commented 2 months ago

Fixed in EDC CE 7.4.0