Problem with "realtime" buttons

Whenever I click one of the blue buttons that either:

  • Install a new extension,
  • Upgrades a new extension,

But also buttons that might have their result of an asynchronous nature, they usually fail with an error such as:

image

However if I refresh the page, it seems like the action was taken into account - because the button will read the next step (eg Continue if the latest click was reading Install). If I press the button for the next step, the same error occurs - but again if I refresh the page it shows the next step (Eg if I just clicked Continue to install an extension, after the page refresh it reads Uninstall, meaning that the extension was installed).

Is there any sort of configuration to get XWiki stop exhibiting this behaviour? I was wondering, is there any specific nginx configuration required for websocket / long polling maybe?

Thanks!

XWiki Standard does not use websocket for asynchronous tasks (partly to avoid issues like theses :slight_smile: ). This kind of issue is generally related to an URL not properly generated because of some wrong wiki descriptor or a problem in the application server or the HTTP proxy in front of XWiki.

The first thing would be to check what is the exact error you get, you should see that using your browser developer tools by taking a look at executed HTTP requests. Would be great to get the detail of the error you got.

@tmortagne thank you for taking the time!

Here is an example of the request payload, it just comes back with a 302 and an empty answer.

readOnly=&extensionId=com.xwiki.diagram%3Aapplication-diagram&extensionVersion=1.12&extensionNamespace=wiki%3Axwiki&section=XWiki.Extensions&xback=%2Fbin%2Fadmin%2FXWiki%2FXWikiPreferences%3Feditor%3Dglobaladmin%26section%3DXWiki.Extensions&extensionAction=install

Just to make sure the problem description is clear - if I then refresh the page, the status has progressed to the next step, it’s just that from a UI perspective it makes very little sense for the user as they might think it actually has failed.

EDIT: I saw somewhere some sort of limitation with the body size of the response when using nginx but I don’t want to poke around that unless it’s likely that it’ll fix the issue. What do you think?

Any idea?

302 is supposed to be a redirect so getting an empty one is quite weird, you sure the Response does not have a Location header ?

Hi there @tmortagne and thanks a lot for taking the time.

The response is completely empty - here is a screeny of the request response:

image

The Localtion should be in the HTTP headers and not in the content.