Search greyed out for adding speakers

I have an indico instance that I just upgraded from version 2 to 3.4.

We use LDAP authentication. It is working fine, both before and after the upgrade.

Since the upgrade, when adding a lecture, the “Search” button under add speaker is greyed out. It is only possible to add speakers manually. This was not the case before the indico upgrade.
Since there is no error, I’m not even sure how to diagnose this.

Which version are you actually using? 3.4 does not exist yet (and I hope you do not mean 2.3.4 ;))

Sorry. 3.4 was a typo. I’m using Indico 3.2
Centos 7.9
python 3.9.14

Thanks. Where are you adding the speaker? Event/Contribution? Which event type?

I specifically tested adding an event (Lecture), but found the same thing anywhere I could add a speaker or chairman.

I tested this last night in response to a user bug report and confirmed.

This morning, it works. Also the “add myself” button is back, which it was not last night.

I have no good explanation for why it may have changed. There haven’t been any updates and the machine hasn’t been rebooted. We did move it behind Cloudflare after the upgrade. That sometimes results in hard to diagnose issues. Or maybe some caching issue?

Sorry for the false alarm. I’ll confirm with my users that it works for them as well, but it looks like this will remain a mystery.

Yeah, that sounds like some obscure caching issue…

Hi jdanders,
I’m experiencing the same issue. Did you resolve this issue yet? Thanks.

We are facing this same issue as well, and our site is behind CloudFlare

@ThiefMaster have you had any luck identifying the issue with a Cloudflare configuration?

Not really. Can you provide me access to your instance so I can try it out myself?

I suspect it may be related to multiple (reverse) proxies in front of indico:

app.py has:

    if config.USE_PROXY:
        app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_proto=1, x_host=1)

So only values for X-Forwarded-… from the last proxy are used.
So carefully inspect the headers arriving in indico.

See also Tell Flask it is Behind a Proxy — Flask Documentation (3.0.x)

The solution is to configure cloudflare so it does not do any caching on /assets/js-vars/* - stuff in there are not really static assets but rather depends on the user (user.js), or the indico version+config (global.js), so they should not be cached.

(Maybe there’s also something we can do on the Indico side to tell CF and other providers to never cache those…)