vaadin / flow

Vaadin Flow is a Java framework binding Vaadin web components to Java. This is part of Vaadin 10+.
Apache License 2.0
589 stars 164 forks source link

Resynchronizing UI by client's request #14232

Closed jonasrotilli closed 1 year ago

jonasrotilli commented 1 year ago

Description of the bug

I am often getting the message in the log of Resynchronizing UI by client's request.

The full message is: Resynchronizing UI by client's request. The network message was lost before reaching the client and the client is reloading the full UI state. This typically happens because of a bad network connection with packet loss or because of some part of the network infrastructure (load balancer, proxy) terminating a push (websocket or long-polling) connection. If you are using push with a proxy, make sure the push timeout is set to be smaller than the proxy connection timeout

It's not connection, apparently it's session related.

I have on the same linux server running another Vaadin 8 application. They have different names, different ports, in different folders and are NGINX-mapped with different subdomains.

I have already evaluated the other problems related to the topic:

12640

There was no clear solution, someone raised some possibilities:

12173

In this problem the user uses long duration push. Not my case, I use simple, default @Push.

11645

In this problem as I understand it was the slow connection. It's not my case, everything is flying here.

12173

In this problem the user uses long duration push. Not my case, I use simple, default @Push.

10096

This is a very similar scenario. But there was no conclusion, the user closed without informing how the issue was resolved and if it was resolved.

9399

This one he solved by changing the server, it is difficult to assess what the problem was

Anyway, this problem is quite recurrent and should be better explained in the documentation. I downloaded the example available from the site, nothing out of the ordinary, little or no extra configuration.

Expected behavior

The expectation is that it doesn't lock the user's screen, it's terrible to have to ask him to refresh the page, because after it's broken it doesn't come back.

Minimal reproducible example

It's hard to simulate, because it doesn't always happen. The impression is that it happens after a while without changes on the page, but sometimes it happens right after logging in or during some slower operation.

Versions

caalador commented 1 year ago

At least I didn't note a problem with service worker, but it might need some old worker there. If this fix doesn't help lets open up a new ticket for looking into service worker problem.

echarlus commented 1 year ago

Can you describe what the fix you released here addresses exactly in terms of behavior (seen by the user) ? My feeling tells me I can still be having other issues that are not addressed here.

caalador commented 1 year ago

The application keeps on working after a resync instead of freezing up so that it doesn't take commands anymore.

echarlus commented 1 year ago

ok. Does that takes care of the Exception I reported on the client side : FlowClient.947c8d40.js:1 Uncaught (in promise) Error: Client is resynchronizing at FlowClient.947c8d40.js:1:42744 at Array.forEach (<anonymous>) at Zy (FlowClient.947c8d40.js:1:42719) at by (FlowClient.947c8d40.js:1:34159) at z.db (FlowClient.947c8d40.js:3:76660) at x (FlowClient.947c8d40.js:1:32329) at Map.forEach (<anonymous>) at i2 (FlowClient.947c8d40.js:1:43877) at W1 (FlowClient.947c8d40.js:3:50372) at mf (FlowClient.947c8d40.js:3:37591) at z.Bb (FlowClient.947c8d40.js:3:74625) at z.O (FlowClient.947c8d40.js:3:86799) at XMLHttpRequest.<anonymous> (FlowClient.947c8d40.js:1:25882) at od (FlowClient.947c8d40.js:1:16760) at Z2 (FlowClient.947c8d40.js:3:5692) at XMLHttpRequest.<anonymous> (FlowClient.947c8d40.js:1:28235)

?

caalador commented 1 year ago

Not specifically. Also that is not an error as such as it is noting that the promise is cancelled due to resync:

caalador commented 1 year ago

Now the 23.2-SNAPSHOT should be available.

echarlus commented 1 year ago

Thanks, I'll try that and see how it goes !

tiagomartins91 commented 1 year ago

What is the expected time to be released on Vaadin 14.x version?

caalador commented 1 year ago

Next release.

echarlus commented 1 year ago

And do you know when the next official 23.2 will be released ? Will it automatically include this patch ?

mshabarov commented 1 year ago

@echarlus @tiagomartins91 since this is a blocker issue, we'll do Flow release asap. I've already started Flow 23.2.4 release, so it should be available soon in the maven central, so you can override Flow version in your pom.xml and test it. V14.8 needs the back-porting and validation process to be completed, so we'll release flow version for 14.8 most likely on Monday next week. We will release next Vaadin versions (including mentioned flow versions) for 23.2 and 14.8 next week once we merge other important bug-fixes in.

echarlus commented 1 year ago

@mshabarov thanks a lot ! I'll pick-it up as soon as it's available.

echarlus commented 1 year ago

@mshabarov can you please confirm I should be looking here : https://mvnrepository.com/artifact/com.vaadin/flow-server ? Thanks

mshabarov commented 1 year ago

@echarlus no, this is the official one https://search.maven.org/artifact/com.vaadin/flow-bom

echarlus commented 1 year ago

@mshabarov thanks. I've updated my repo-source URL.

echarlus commented 1 year ago

@mshabarov sorry but I'm not a maven pro and I cannot manage to get the flow version 23.2.4 to get used when compiling ... I've added this in my dependency : `

com.vaadin vaadin-bom pom import ${vaadin.version} ` ` com.vaadin flow-bom 23.2.4 pom import

`

${vaadin.version} is still 23.2.3 since the whole 23.2.4 is not released yet.

Then if I add : `-

com.vaadin
        <artifactId>flow</artifactId>
        <version>23.2.4</version>
    </dependency>-`

it fails, the jar is not found ...

When I build, it's still using 23.2.3, what's the way to make it work ? Thanks.

mcollovati commented 1 year ago

Try to move the flow-bom dependency before vaadin-bom. The other dependency you added (com.vaadin:flow) is wrong. If you remove it and do a mvn dependency:tree you should see Flow-client at version 23.2.4 If not, add a dependency to com.vaadin:flow-client at version 23.2.4

echarlus commented 1 year ago

Thanks now it has picked-up 23.2.4.

echarlus commented 1 year ago

@caalador I've been testing the new version and unfortunately I'm still experiencing the issue I had previously :

Then if I try to go back to the app's root (/) , nothing happens ... the query is not sent and I'm stuck on the same page forever. I'm getting the same behavior on Chrome & Firefox with either Azure AppGateway or Apache as a proxy in front of tomcat.

What I really don't understand is why I cannot even change the URL and go to / when this happens....

I've saved the chrome dev tools logs (console & network activity) as well as server logs. I'll send you a link to them privately so that you can check them out if you like. I'm available if you need more info / debug logs.

knoobie commented 1 year ago

Just an idea: if you don't heavily rely on PWA - remove the annotation and deactivate the already locally installed service worker for that domain in your browser and see if that improves your situation

echarlus commented 1 year ago

Good idea, I'll try that ...

mshabarov commented 1 year ago

Flow 2.7.23 (Vaadin 14.8) has been sent to maven-central and should be available there soon.

vaadin-bot commented 1 year ago

This ticket/PR has been released with Vaadin 14.8.19.

echarlus commented 1 year ago

@caalador I've just experienced the issue again, on a server which did not had any latency issue and did not sent back a 502 response after a timeout. I logged in and then I saw the page starting to refresh itself for a while, I captures both the network & console log on chrome, one can see the exception in the logs (full log available upon request):

vaadinPush-min.js?v=23.2.4:1 Vaadin push loaded
generated-flow-imports.679d9aff.js:7824 WARNING: Since Vaadin 23.1, using <iron-icon> is deprecated. Please use <vaadin-icon> and '@vaadin/vaadin-lumo-styles/vaadin-iconset.js' instead.
(anonyme) @ generated-flow-imports.679d9aff.js:7824
generated-flow-imports.679d9aff.js:11260 The main 'lit-element' module entrypoint is deprecated. Please update your imports to use the 'lit' package: 'lit' and 'lit/decorators.ts' or import from 'lit-element/lit-element.ts'. See https://lit.dev/msg/deprecated-import-path for more information.
(anonyme) @ generated-flow-imports.679d9aff.js:11260
generated-flow-imports.679d9aff.js:11264 WARNING: Since Vaadin 23.2, "@vaadin/vaadin-ordered-layout" is deprecated. Use "@vaadin/vertical-layout" instead.
(anonyme) @ generated-flow-imports.679d9aff.js:11264
generated-flow-imports.679d9aff.js:11498 WARNING: Since Vaadin 23.2, "@vaadin/vaadin-form-layout" is deprecated. Use "@vaadin/form-layout" instead.
(anonyme) @ generated-flow-imports.679d9aff.js:11498
generated-flow-imports.679d9aff.js:11502 WARNING: Since Vaadin 23.2, "@vaadin/vaadin-ordered-layout" is deprecated. Use "@vaadin/horizontal-layout" instead.
(anonyme) @ generated-flow-imports.679d9aff.js:11502
generated-flow-imports.679d9aff.js:11506 WARNING: Since Vaadin 23.2, "@vaadin/vaadin-button" is deprecated. Use "@vaadin/button" instead.
(anonyme) @ generated-flow-imports.679d9aff.js:11506
vaadinPush-min.js?v=23.2.4:1 Invoking executeWebSocket, using URL: wss://test.o-cell.fr/?v-r=push&v-uiId=0&v-pushId=5b3f1338-8707-4ef9-ba2c-d9055e81b859&X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=3.1.2-javascript&X-Atmosphere-Transport=websocket&X-Atmosphere-TrackMessageSize=true&Content-Type=application/json; charset=UTF-8&X-atmo-protocol=true
vaadinPush-min.js?v=23.2.4:1 WebSocket connection to 'wss://test.o-cell.fr/?v-r=push&v-uiId=0&v-pushId=5b3f1338-8707-4ef9-ba2c-d9055e81b859&X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=3.1.2-javascript&X-Atmosphere-Transport=websocket&X-Atmosphere-TrackMessageSize=true&Content-Type=application/json;%20charset=UTF-8&X-atmo-protocol=true' failed: 
ax @ vaadinPush-min.js?v=23.2.4:1
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:01 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: websocket.onerror
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:01 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: websocket.onclose
vaadinPush-min.js?v=23.2.4:1 Websocket closed, reason: Connection was closed abnormally (that is, with no close frame being sent). - wasClean: false
log @ vaadinPush-min.js?v=23.2.4:1
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:01 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: Firing onClose (closed case)
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:01 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: Request already closed, not firing onClose (closed case)
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:01 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: Firing onReconnect
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:01 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: Firing onReconnect
(index):1 [DOM] Input elements should have autocomplete attributes (suggested: "username"): (More info: https://goo.gl/9p2vKq) <input type=​"text" slot=​"input" id=​"input-vaadin-text-field-6" required name=​"username" autocorrect=​"off" aria-labelledby=​"label-vaadin-text-field-0">​   slot 
vaadinPush-min.js?v=23.2.4:1 Invoking executeWebSocket, using URL: wss://test.o-cell.fr/?v-r=push&v-uiId=0&v-pushId=5b3f1338-8707-4ef9-ba2c-d9055e81b859&X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=3.1.2-javascript&X-Atmosphere-Transport=websocket&X-Atmosphere-TrackMessageSize=true&Content-Type=application/json; charset=UTF-8&X-atmo-protocol=true
vaadinPush-min.js?v=23.2.4:1 WebSocket connection to 'wss://test.o-cell.fr/?v-r=push&v-uiId=0&v-pushId=5b3f1338-8707-4ef9-ba2c-d9055e81b859&X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=3.1.2-javascript&X-Atmosphere-Transport=websocket&X-Atmosphere-TrackMessageSize=true&Content-Type=application/json;%20charset=UTF-8&X-atmo-protocol=true' failed: 
ax @ vaadinPush-min.js?v=23.2.4:1
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:06 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: websocket.onerror
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:06 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: websocket.onclose
vaadinPush-min.js?v=23.2.4:1 Websocket closed, reason: Connection was closed abnormally (that is, with no close frame being sent). - wasClean: false
log @ vaadinPush-min.js?v=23.2.4:1
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:06 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: Request already closed, not firing onClose (closed case)
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:06 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: Request already closed, not firing onClose (closed case)
vaadinPush-min.js?v=23.2.4:1 Websocket failed on first connection attempt. Downgrading to long-polling and resending
logo_16.png:1          Failed to load resource: the server responded with a status of 404 ()
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:13 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: ajaxRequest.onreadystatechange, new state: 2
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:13 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: ajaxRequest.onreadystatechange, new state: 3
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:13 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: ajaxRequest.onreadystatechange, new state: 4
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:13 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: ajaxRequest.onreadystatechange, new state: 2
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:13 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: Firing onOpen
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:13 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: Firing onOpen
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:13 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: ajaxRequest.onreadystatechange, new state: 3
vaadinPush-min.js?v=23.2.4:1 Mon Oct 10 2022 15:16:13 GMT+0200 (heure d’été d’Europe centrale) Atmosphere: ajaxRequest.onreadystatechange, new state: 3
logo_16.png:1          Failed to load resource: the server responded with a status of 404 ()
FlowClient.638236c0.js:1 Uncaught (in promise) Error: Client is resynchronizing
    at FlowClient.638236c0.js:1:42744
    at Array.forEach (<anonymous>)
    at Zy (FlowClient.638236c0.js:1:42719)
    at by (FlowClient.638236c0.js:1:34159)
    at z.db (FlowClient.638236c0.js:3:76809)
    at x (FlowClient.638236c0.js:1:32329)
    at Map.forEach (<anonymous>)
    at h2 (FlowClient.638236c0.js:1:46370)
    at W1 (FlowClient.638236c0.js:3:50514)
    at mf (FlowClient.638236c0.js:3:37733)
    at z.Bb (FlowClient.638236c0.js:3:74767)
    at z.O (FlowClient.638236c0.js:3:86948)
    at XMLHttpRequest.<anonymous> (FlowClient.638236c0.js:1:25882)
    at od (FlowClient.638236c0.js:1:16760)
    at K2 (FlowClient.638236c0.js:3:5540)
    at XMLHttpRequest.<anonymous> (FlowClient.638236c0.js:1:28235)

image

This is a build which includes the flow 23.2.4 build released on friday.

caalador commented 1 year ago

This would seem to be some other issue, probably with push as it fails to connect a websocket connection. Also some pwa icon requests seem to be made, perhaps there is an old service worker trying to fetch things?

If you could open up a new issue (as this one was about not recovering from resync) and if possible have a minimal application that would fail also it would help.

echarlus commented 1 year ago

@caalador thanks for the advice. New bug is here : https://github.com/vaadin/flow/issues/14797 FYI the 404 on the image is "normal" it's an image that should be displayed in my header and that is not always present, depending on the context.

vaadin-bot commented 1 year ago

This ticket/PR has been released with Vaadin 23.2.4.

alexanoid commented 1 year ago

Hi! I have the same issue with NGINX, Vaadin 23.2.4 -

2022-10-17 01:26:18.425 WARN 3555474 --- [http-nio-8080-exec-10] c.v.f.s.communication.ServerRpcHandler : Resynchronizing UI by client's request. A network message was lost before reaching the client and the client is reloading the full UI state. This typically happens because of a bad network connection with packet loss or because of some part of the network infrastructure (load balancer, proxy) terminating a push (websocket or long-polling) connection. If you are using push with a proxy, make sure the push timeout is set to be smaller than the proxy connection timeout

more details https://stackoverflow.com/questions/74081025/vaadin23-uncaught-in-promise-error-client-is-resynchronizing

vaadin-bot commented 1 year ago

This ticket/PR has been released with Vaadin 23.1.13.

vaadin-bot commented 1 year ago

This ticket/PR has been released with Vaadin 14.9.0.beta1 and is also targeting the upcoming stable 14.9.0 version.

jonasrotilli commented 1 year ago

This issue has not been resolved. It keeps happening, even in the latest version 23.2.9. Right now I'm seeing this happen, in production, internet ok, 1 hour with the screen open without moving, when changing screens, the problem started.

This is complicated, it's been 6 months since my report and it keeps happening, version comes in, version comes out and there is no solution or definitive explanation.

echarlus commented 1 year ago

I've also seen it a few times with 23.3.1 :(

jonasrotilli commented 1 year ago

I just updated to 23.2.9, and the finding is that it's much worse. It happened 2 times already, just with me as I'm a system developer.

I will need to go back to the previous version.

This issue has not been resolved. It keeps happening, even in the latest version 23.2.9. Right now I'm seeing this happen, in production, internet ok, 1 hour with the screen open without moving, when changing screens, the problem started.

This is complicated, it's been 6 months since my report and it keeps happening, version comes in, version comes out and there is no solution or definitive explanation.

jonasrotilli commented 1 year ago

This item needs to be re-opened, it has not been resolved.

jonasrotilli commented 1 year ago

See the browser log messages, when they happen: . . . .

Tue Jan 10 2023 16:00:58 GMT-0400 (Horário Padrão do Amazonas) Atmosphere: Firing onClose (closed case) vaadinPush-min.js?v=23.2.3:1 Tue Jan 10 2023 16:00:58 GMT-0400 (Horário Padrão do Amazonas) Atmosphere: Request already closed, not firing onClose (closed case)

vaadinPush-min.js?v=23.2.3:1 Tue Jan 10 2023 16:00:58 GMT-0400 (Horário Padrão do Amazonas) Atmosphere: invoking .close() on WebSocket object

2vaadinPush-min.js?v=23.2.3:1 Tue Jan 10 2023 16:00:58 GMT-0400 (Horário Padrão do Amazonas) Atmosphere: Firing onReconnect

vaadinPush-min.js?v=23.2.3:1 Invoking executeWebSocket, using URL: wss://portal.upcampo.com.br/?v-r=push&v-uiId=0&v-pushId=c72c1567-11f6-4e9f-81ab-d51fd96ba37e&X-Atmosphere-tracking-id=725954af-eeb4-42ca-94a0-7905083d0fec&X-Atmosphere-Framework=3.1.2-javascript&X-Atmosphere-Transport=websocket&X-Atmosphere-TrackMessageSize=true&Content-Type=application/json; charset=UTF-8&X-atmo-protocol=true vaadinPush-min.js?v=23.2.3:1 Tue Jan 10 2023 16:01:05 GMT-0400 (Horário Padrão do Amazonas) Atmosphere: websocket.onopen

vaadinPush-min.js?v=23.2.3:1 Websocket successfully opened vaadinPush-min.js?v=23.2.3:1 Tue Jan 10 2023 16:01:05 GMT-0400 (Horário Padrão do Amazonas) Atmosphere: websocket.onmessage

2vaadinPush-min.js?v=23.2.3:1 Tue Jan 10 2023 16:01:05 GMT-0400 (Horário Padrão do Amazonas) Atmosphere: Firing onReopen

generated-flow-imports.81274417.js:894 WARNING: Since Vaadin 23, notifyResize() is deprecated. The component uses a ResizeObserver internally and doesn't need to be explicitly notified of resizes.

notifyResize @ generated-flow-imports.81274417.js:894 11FlowClient.947c8d40.js:1 Uncaught (in promise) Error: Client is resynchronizing at FlowClient.947c8d40.js:1:42744 at Array.forEach () at Zy (FlowClient.947c8d40.js:1:42719) at by (FlowClient.947c8d40.js:1:34159) at z.db (FlowClient.947c8d40.js:3:76660) at x (FlowClient.947c8d40.js:1:32329) at Map.forEach () at i2 (FlowClient.947c8d40.js:1:43877) at W1 (FlowClient.947c8d40.js:3:50372) at mf (FlowClient.947c8d40.js:3:37591) at z.Bb (FlowClient.947c8d40.js:3:74625) at z.O (FlowClient.947c8d40.js:3:86799) at XMLHttpRequest. (FlowClient.947c8d40.js:1:25882) at od (FlowClient.947c8d40.js:1:16760) at Z2 (FlowClient.947c8d40.js:3:5692) at XMLHttpRequest. (FlowClient.947c8d40.js:1:28235)

jonasrotilli commented 1 year ago

Curious that it happens a lot more on Mac computers. I tested it on more than one mac computer and it happened on both. Already on a Windows, the problem occurs much less frequently. I tested it in Google Chrome browser and Safari, in both the same behavior. If I open the browsers log, it shows an error:

(in promise) Error: Client is resynchronizing at FlowClient.42a5821f.js:1:42438

We need an urgent solution for this, the situation is becoming unsustainable, many customers are complaining.

There are several tickects open for this and no solution:

15205

14797

I am ready to help you by providing information. If anyone wants to connect to my computer and look at the problem happening, if they want my project, anyway, I'm available to help with the definitive resolution.

knoobie commented 1 year ago

If you can reproduce the problem locally, that would probably help a lot.

Additionally you can enable trace logging to https://github.com/vaadin/flow/blob/master/flow-server/src/main/java/com/vaadin/flow/component/internal/UIInternals.java which would print all information why the server side count increases (A LOT) to find the cause why / how it happens. (This should not be added to a production env)

mshabarov commented 1 year ago

@jonasrotilli thanks for willing to help on this issue. Would you be up for a call to discuss and see what is happening on your side? Please email me mikhail@vaadin.com and we can then arrange a meet. We are working on the other issues related to client-server resynchronisation, but since this one is getting worse, we'll work on it asap.

jonasrotilli commented 1 year ago

If you can reproduce the problem locally, that would probably help a lot.

Additionally you can enable trace logging to https://github.com/vaadin/flow/blob/master/flow-server/src/main/java/com/vaadin/flow/component/internal/UIInternals.java which would print all information why the server side count increases (A LOT) to find the cause why / how it happens. (This should not be added to a production env)

I don't have the problem locally, only when it's production. What I meant is that we can make a call to view here on my computer occurring in production. There was a time when the problem was random. Now it happens in a pattern: just let the system stand still for a few minutes, it happens.

jonasrotilli commented 1 year ago

@jonasrotilli thanks for willing to help on this issue. Would you be up for a call to discuss and see what is happening on your side? Please email me mikhail@vaadin.com and we can then arrange a meet. We are working on the other issues related to client-server resynchronisation, but since this one is getting worse, we'll work on it asap.

I sent my data, so we can talk, thanks!

jonasrotilli commented 1 year ago

Se você puder reproduzir o problema localmente, isso provavelmente ajudará muito.

Além disso, você pode ativar o registro de rastreamento em https://github.com/vaadin/flow/blob/master/flow-server/src/main/java/com/vaadin/flow/component/internal/UIInternals.java que imprimiria todos informações por que a contagem do lado do servidor aumenta (MUITO) para encontrar a causa / como isso acontece. (Isso não deve ser adicionado a um ambiente de produção)

Could you help me to put this TRACE? Is there somewhere with an explanation how should I use it?

It would help me a lot, thanks.

knoobie commented 1 year ago

In Spring Boot for example add this to your application.yml (you probably already have the top level entries):


logging:
  level:
    com.vaadin.flow.component.internal.UIInternals: TRACE
jonasrotilli commented 1 year ago

No Spring Boot, por exemplo, adicione isso ao seu application.yml (você provavelmente já possui as entradas de nível superior):

logging:
  level:
    com.vaadin.flow.component.internal.UIInternals: TRACE

I don't use application.yml, I use application.properties, if you have the lines ready, help me! I'm searching

mshabarov commented 1 year ago

@jonasrotilli this works for me add logging.level.com.vaadin.flow.component.internal = trace in application.properties

jonasrotilli commented 1 year ago

After help from @mshabarov and @mcollovati , they guided me to put version 23.2.13. In this version the problem is gone. No other changes were made, I didn't touch NGINX, anything in the application or anything related to the server, so I believe that something between version 23.2.9 and 23.2.13 solved the problem.

Thanks for the help!

I won't close, so that someone with more knowledge can assess what has been done between these versions.

Artur- commented 1 year ago

14887 was fixed in 23.2.12 and 23.3.2. There does not seem to be any comments here about newer versions experiencing the problem

mshabarov commented 1 year ago

Closed because the issue is not reproduced for author. If anyone would experience the same issue again, please report it here, so we can re-open and investigate, or make a new issue in Flow.

dbMe1 commented 6 months ago

Intermittently, in PROD environment only, I am seeing: UnsupportedOperationException: Unexpected message id from the client. Expected sync id: 3, got 4

JDK 17 Spring Boot 3.2.0 Vaadin 24.2.4

Please help. Here is most of the stacktrace:

2023-12-17T04:58:32.360Z ERROR 7 --- [dbME] [nio-6386-exec-9] c.v.flow.server.DefaultErrorHandler :

java.lang.UnsupportedOperationException: Unexpected message id from the client. Expected sync id: 3, got 4. more details logged on DEBUG level.

at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:313) ~[flow-server-24.2.3.jar!/:24.2.3]

at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114) ~[flow-server-24.2.3.jar!/:24.2.3]

at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40) ~[flow-server-24.2.3.jar!/:24.2.3]

at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1522) ~[flow-server-24.2.3.jar!/:24.2.3]

at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398) ~[flow-server-24.2.3.jar!/:24.2.3]

at com.vaadin.flow.spring.SpringServlet.service(SpringServlet.java:106) ~[vaadin-spring-24.2.3.jar!/:na]

at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar!/:na]

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar!/:na]

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar!/:na]

at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:642) ~[tomcat-embed-core-10.1.16.jar!/:na]

at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:408) ~[tomcat-embed-core-10.1.16.jar!/:na]

at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:313) ~[tomcat-embed-core-10.1.16.jar!/:na]

at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:277) ~[tomcat-embed-core-10.1.16.jar!/:na]

at org.springframework.web.servlet.mvc.ServletForwardingController.handleRequestInternal(ServletForwardingController.java:141) ~[spring-webmvc-6.1.1.jar!/:6.1.1]

at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:178) ~[spring-webmvc-6.1.1.jar!/:6.1.1]

at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:51) ~[spring-webmvc-6.1.1.jar!/:6.1.1]

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar!/:6.1.1]

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar!/:6.1.1]

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar!/:6.1.1]

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) ~[spring-webmvc-6.1.1.jar!/:6.1.1]

at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) ~[tomcat-embed-core-10.1.16.jar!/:na]

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar!/:6.1.1]

at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar!/:na]

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar!/:na]

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar!/:na]

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar!/:na]

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar!/:na]

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar!/:na]

at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar!/