gravitee-io / issues

Gravitee.io - API Platform - Issues
64 stars 26 forks source link

Connected user in portal get "User[0] cannot be found" when clicking on an API in the catalogue #8997

Closed pascal-schetelat closed 3 months ago

pascal-schetelat commented 1 year ago

Describe the bug

describe-the-bug

When a user that has created its account in the portal and has requested a subscription for an API, any attempt to see the API page will lead to an error page "User[0] cannot be found"

In the browser network call, the api call is :

GET [https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/)([https://XXX/portal/environments/DEFAULT/apis/](https://XXX/portal/environments/DEFAULT/apis/))))))

 {api_id} 

/subscribers?statuses=ACCEPTED
{
 "errors" : [ {
 "status" : "404",
 "message" : "User [0] can not be found.",
 "code" : "errors.user.notFound",
 "parameters" : 

 { "user" : "0" } 

 } ]
 }

To Reproduce

to-reproduce

Steps to reproduce the behaviour:

Interesting enough, when using keycloak as an identity provider, the issue happen before:

Expected behaviour

expected-behaviour

A clear and concise description of what you expected to happen.

I expect my user to be able to view public API description and documentation I expect my user to be able to see the API description and documentation while waiting for the validation of their subscription

Current behaviour

current-behaviour

A clear and concise description of what is currently happening.

Connected user in portal get "User[0] cannot be found" when viewing an API

Useful information

useful-information

Seems that the api call crash because of the url encoded parameter subscribers?statuses=ACCEPTED

Without status accepted, no issue.

This seems link to the display of subscribers statistics, which I could not find a way to disable

Environment

environment

What is the impacted version?

here are the docker tag implied :

graviteeio/apim-portal-ui:3.18.12 graviteeio/apim-management-api:3.18.12 graviteeio/apim-management-ui:3.18.12 graviteeio/apim-gateway:3.18.12

We deploy those image on kubernetes v1.24.7 without helm (manually crafted manifest)

Potential impacts

potential-impacts

Which other features may be impacted by this fix. This could be populated after fix

What are the impacted versions?

Dependencies

dependencies

Link a story or other related things...

pascal-schetelat commented 1 year ago

The issue is pretty damaging considering it is client facing portal.

Is there any update on the issue ?

stale[bot] commented 10 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

phiz71 commented 8 months ago

Hello @pascal-schetelat, first I would like to apologize for the very late response.

Since May, we have made multiple fixes on the dev portal. Have you had the opportunity to test with the latest supported version of APIM? (currently 3.20.25)

pascal-schetelat commented 6 months ago

Hi, thank you for your response. We started testing gravitee 4.2 and the issue has been fixed :

https://api-management-api.dev.bdnb.io/portal/environments/DEFAULT/apis/9de2c8f3-a791-4c7a-a2c8-f3a791bc7aff/subscribers?statuses=ACCEPTED Wich used to fail but now gives something more sensible :

{
  "data" : [ ],
  "metadata" : {
    "data" : {
      "total" : 0
    }
  }
}

thanks !

stale[bot] commented 3 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.