Admin lost administrator privileges after upgrading

Hello,

I’ve made a double upgrade to our indico 1.2 installation (1.2->2.0->2.1) and, though I have not seen any error message (at least, none that looked worrying) or any other sign of trouble, the final indico installation seems to have dropped privileges at least for the admin user: the (former) admin user still exists, with the same name and password, but it seems unable to change anything in any event and though it has an “Administration” tab in its profile, if checking the Accounts->Admin menu entry it appears empty, as if there were no admin users (the Accounts->Users entry does say there are +340 registered users). As far as I have checked, no user (including the former admin user) can create new events (clicking the button has absolutely no effect) or change anything in any existing event. Users can login, and new users can be created through links in the public page (though at the end of the process it gives an error message complaining that only admin users can go to some page. The user gets created anyway, though).

I’m wondering if I’ve managed to put indico in some weird maintenance mode. If not, is there any way to give back administration privileges to the former admin (taking into account that there seems to be no other indico admin user now)?

Thanks in advance!

Josep

Hey,

that sounds really strange. Assuming that the user doesn’t have the is_admin flag set on the DB, they shouldn’t even see the Administration menu item. It would be really interesting to debug this problem.

Regards,
Michal

I’ve had to roll back the upgrade to the 1.2 indico version, since it was a production system and it was needed online and working but, since it was not just an update but a server migration, I still have available the upgraded system too (just not accessible to internet), so if you need me to provide more information I can do it.

I’m attaching a screenshot of the (former) admin user logged in and checking the “Admins” option in “Users management”. You can see the “Administration” tab and that no users are listed.

any errors in the browser’s js console?

Sorry, it took a while finding it. Yes, there are several errors. Attaching another screenshot.

Check the network tab for the full URLs it uses to (try to) load those files. Maybe the aliases in your webserver config are wrong… Make sure to use the one from https://docs.getindico.io/en/stable/installation/production/ (stable, not latest)

Attaching image with the “Network” tab open

The aliases are a bit more complicated. The server is an lxc container (indico) that is accessed through redirection from another lxc container (www). The system for the production environment (the one currently working) uses the same configuration but the containers are openvz containers. All of them are Debian systems using apache 2.

In indico:

root@indico:/etc/apache2/sites-enabled# for a in *
> do
> echo $a
> echo
> cat $a
> echo “===================”
> done
indico.conf

<VirtualHost *:443>
    ServerName indico.interna.ice.cat
    DocumentRoot "/var/empty/apache"

    SSLEngine             on
    SSLCertificateFile    /etc/apache2/ssl/indico.interna.ice.cat.cert.pem
    SSLCertificateKeyFile /etc/apache2/ssl/indico.interna.ice.cat.key.pem.notprotected
    SSLProtocol           all -SSLv2 -SSLv3
    SSLCipherSuite        ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
    SSLHonorCipherOrder   on

    XSendFile on
    XSendFilePath /opt/indico
    CustomLog /opt/indico/log/apache/access.log combined
    ErrorLog /opt/indico/log/apache/error.log
    LogLevel error
    ServerSignature Off

    AliasMatch "^/static/assets/(core|(?:plugin|theme)-[^/]+)/(.*)$" "/opt/indico/assets/$1/$2"
    AliasMatch "^/(images|fonts)(.*)/(.+?)(__v[0-9a-f]+)?\.([^.]+)$" "/opt/indico/web/static/$1$2/$3.$5"
    AliasMatch "^/(css|dist|images|fonts)/(.*)$" "/opt/indico/web/static/$1/$2"
    Alias /robots.txt /opt/indico/web/htdocs/robots.txt

    SetEnv UWSGI_SCHEME https
    ProxyPass / uwsgi://127.0.0.1:8008/

    <Directory /opt/indico>
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

===================
indico-sslredir.conf

<VirtualHost *:80>
    ServerName indico.interna.ice.cat
    RewriteEngine On
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>
===================

root@indico:/etc/apache2/sites-enabled#
root@indico:/etc/apache2/sites-enabled# cat /etc/uwsgi/apps-available/indico.ini

[uwsgi]
uid = indico
gid = www-data
umask = 027

processes = 4
enable-threads = true
socket = 127.0.0.1:8008
stats = /opt/indico/web/uwsgi-stats.sock
protocol = uwsgi

master = true
auto-procname = true
procname-prefix-spaced = indico
disable-logging = true

plugin = python
single-interpreter = true

touch-reload = /opt/indico/web/indico.wsgi
wsgi-file = /opt/indico/web/indico.wsgi
virtualenv = /opt/indico/.venv

vacuum = true
buffer-size = 20480
memory-report = true
max-requests = 2500
harakiri = 900
harakiri-verbose = true
reload-on-rss = 2048
evil-reload-on-rss = 8192

root@indico:/etc/apache2/sites-enabled#

in www:

root@www:/etc/apache2/sites-enabled# cat indico.conf

 Define indico indico.interna.ice.cat
 Define indico2 indico.ice.csic.es


<VirtualHost *:80>
   ServerName indico.ice.csic.es

        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin missatges@ice.csic.es

        RewriteEngine On

        RewriteRule /indico(.*)$ https://${indico2}/$1 [R]


        RewriteRule /summer2017(.*) https://${indico2}/event/1/ [R]
        RewriteRule /summer2018(.*) https://${indico2}/event/9/ [R]
        RewriteRule /summer2019(.*) https://${indico2}/event/19/ [R]
        RewriteRule /desi2018barcelona(.*) https://${indico2}/event/11/ [R]
        RewriteRule /euclidcswg2018(.*) https://${indico2}/event/16/ [R]
        RewriteRule /wp120bcn2019(.*) https://${indico2}/event/18/ [R]

#       DocumentRoot /var/www/html

        <Location />
         Order allow,deny
         allow from all
        </Location>

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.indico.nossl.log
        CustomLog ${APACHE_LOG_DIR}/access.indico.nossl.log combined

</VirtualHost>
<IfModule mod_ssl.c>

 <VirtualHost *:443>
   ServerName indico.ice.csic.es

    SSLEngine on
    SSLProxyEngine On
    SSLCertificateFile /etc/apache2/ssl/indico_ice_csic_es.crt
    SSLCertificateKeyFile /etc/apache2/ssl/indico.ice.csic.es_privatekey.pem
    SSLCertificateChainFile /etc/apache2/ssl/DigiCertCA.crt
#    SSLCertificateChainFile /etc/apache2/ssl/ca-chain.ICE.cert.pem

    ProxyPreserveHost On
    RewriteEngine On

   # Expose Internal App to the internet.

   ProxyPass /summer2017   https://${indico}/event/1/
   ProxyPassReverse /summer2017   https://${indico}/event/1/
   ProxyPass /summer2018   https://${indico}/event/9/
   ProxyPassReverse /summer2018   https://${indico}/event/9/
   ProxyPass /summer2019   https://${indico}/event/19/
   ProxyPassReverse /summer2019   https://${indico}/event/19/
   ProxyPass /desi2018barcelona   https://${indico}/event/11/
   ProxyPassReverse /desi2018barcelona   https://${indico}/event/11/
   ProxyPass /euclidcswg2018   https://${indico}/event/16/
   ProxyPassReverse /euclidcswg2018   https://${indico}/event/16/
   ProxyPass /wp120bcn2019   https://${indico}/event/18/
   ProxyPassReverse /wp120bcn2019   https://${indico}/event/18/


   ProxyPass /event  https://${indico}/event/
   ProxyPassReverse /event  https://${indico}/event/

   RewriteRule /indico(.*)$ https://${indico2}/$1 [R]

   ProxyPass /  https://${indico}/
   ProxyPassReverse /  https://${indico}/

   ErrorLog ${APACHE_LOG_DIR}/error.indico.ssl.log
   CustomLog ${APACHE_LOG_DIR}/access.indico.ssl.log combined


 </VirtualHost>
</IfModule>

root@www:/etc/apache2/sites-enabled#

and there is an additional line in a more general file the “…” stand for lines related to other systems):

root@www:/etc/apache2/sites-enabled# cat ssl.conf

<IfModule mod_ssl.c>
 <VirtualHost *:443>

   ServerName www.interna.ice.cat
 
    SSLEngine on
    SSLProxyEngine On
    SSLCertificateFile /etc/apache2/ssl/www.interna.ice.cat.cert.pem
    SSLCertificateKeyFile /etc/apache2/ssl/www.interna.ice.cat.key.pem.notprotected
    SSLCertificateChainFile /etc/apache2/ssl/ca-chain.ICE.cert.pem

    ProxyPreserveHost On
    RewriteEngine On

    ...

    RewriteRule /indico(.*)$ https://indico.ice.csic.es/$1 [R]

#    ProxyPreserveHost On

    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
    </Directory>

   <Location />
        Options -Indexes +FollowSymLinks +MultiViews
        Order allow,deny
        allow from all
    </Location>

    ErrorDocument 404 /en/error-404-page-not-found
    ErrorLog ${APACHE_LOG_DIR}/error_ssl.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel debug

    CustomLog ${APACHE_LOG_DIR}/access_ssl.log combined
    ServerSignature Off
</VirtualHost>



<VirtualHost *:443>
    ServerName www.ice.csic.es

    SSLEngine on
    SSLProxyEngine On
    SSLCertificateFile /etc/apache2/ssl/aliga_ice_csic_es.crt
    SSLCertificateKeyFile /etc/apache2/ssl/aliga.ice.csic.es_privatekey.pem
    SSLCertificateChainFile /etc/apache2/ssl/DigiCertCA.crt

    ProxyPreserveHost On
    RewriteEngine On

   ...
 
    RewriteRule /indico(.*)$ https://indico.ice.csic.es/$1 [R]

    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
    </Directory>

   <Location />
        Options -Indexes +FollowSymLinks +MultiViews
        Order allow,deny
        allow from all
    </Location>

    ErrorDocument 404 /en/error-404-page-not-found
    ErrorLog ${APACHE_LOG_DIR}/error_ssl.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access_ssl.log combined
    ServerSignature Off
</VirtualHost>

</IfModule>

root@www:/etc/apache2/sites-enabled#

Those are the aliases from the “latest” (2.2+) docs. Like I mentioned in my previous post, you need to use the ones from the “stable” docs:

AliasMatch "^/static/assets/(core|(?:plugin|theme)-[^/]+)/(.*)$" "/opt/indico/assets/$1/$2"
AliasMatch "^/(css|images|js|static(?!/plugins|/assets|/themes|/custom))(/.*)$" "/opt/indico/web/htdocs/$1$2"

Ah, I see. I didn’t realize there was that new indico version and I thought you were worried about my modifying the aliases on my own, to suit my configuration.

After changing the aliases I’m not seeing any change (still no admin users), but maybe the previous aliases broke something during the migration and I should do it over again. I assume the migration+update process won’t have modified the previous version legacy files and I can reuse them again to redo the update?

did you restart/reload apache? the aliases have nothing to do with the data stored in the DB, so no need to migrate again.

Yes, I restarted apache, and logged out and in of the admin user on the browser. I just did it again (log in and out), just in case there was some cache problem, but still have the same result, no admin users.

Good to know about the aliases not affecting the database contents, but I’m afraid I’ll have to migrate again anyway, since the data is no longer in synch with the old server (the one with indico 1.2). I had to restart the old server since some users needed to edit things urgently. At least the old data can be used for testing the migration process, if required, without having to stop the old server.

If you are still having errors in the console, please show another screenshot of the console (with the full urls in case of 404s!).

It looks to me there are less errors, but I’m not sure (I don’t really know javascript). I’m attaching an image of the “Console” and another of the “Network” tabs. About the “full URLs”, I’m not really sure about how to show them: in the “Network” tab I can only see file names and the checkbox for “Hide URLs” is already unselected (by the way, the big gray rectangle in the first image is a leftover of a previous window, the browser didn’t redraw quick enough before taking the screenshot).

Ah, another point: the missing indico logo in the lower left corner didn’t happen in the updated version I tried to put online (the one I had to pull out when I realized there were no admin users). I’m quite sure since the first attempt had all the images missing but that one and those in the banners of the events, and even then the admins were already missing. Probably I have some leftover broken redirection or DNS entry somewhere after I pulled out the ones that pointed to the new server. I don’t think it’s related to the missing admins problem (could be wrong, though).

Ok, the system won’t allow me attaching two images in one post, so i’m adding the second one in another post.

Second image:

Something is very wrong with those URLs… The path segment is missing there.

Can you post the contents of https://indico.ice.csic.es/assets/js-vars/global.js?

Here it is:

var Indico = {"Data":{"DefaultLocation":null,"Locations":{},"WeekDays":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},"FileRestrictions":{"MaxUploadFileSize":0,"MaxUploadFilesTotalSize":0},"Settings":{"ExtAuthenticators":[],"RoomBookingModuleActive":false},"Urls":{"APIBase":"/api","APIKeyCreate":"/user/api/create","APIKeyTogglePersistent":"/user/api/persistent","AttachmentManager":{"endpoint":"attachments.management","rules":[{"args":["contrib_id","subcontrib_id","object_type","confId"],"converters":{"confId":"IntegerConverter","contrib_id":"IntegerConverter","subcontrib_id":"IntegerConverter"},"defaults":{"object_type":"subcontribution"},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/contributions/","is_dynamic":false},{"data":"contrib_id","is_dynamic":true},{"data":"/subcontributions/","is_dynamic":false},{"data":"subcontrib_id","is_dynamic":true},{"data":"/attachments","is_dynamic":false},{"data":"/","is_dynamic":false}]},{"args":["contrib_id","object_type","confId"],"converters":{"confId":"IntegerConverter","contrib_id":"IntegerConverter"},"defaults":{"object_type":"contribution"},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/contributions/","is_dynamic":false},{"data":"contrib_id","is_dynamic":true},{"data":"/attachments","is_dynamic":false},{"data":"/","is_dynamic":false}]},{"args":["object_type","session_id","confId"],"converters":{"confId":"IntegerConverter","session_id":"IntegerConverter"},"defaults":{"object_type":"session"},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/sessions/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/attachments","is_dynamic":false},{"data":"/","is_dynamic":false}]},{"args":["object_type","confId"],"converters":{"confId":"IntegerConverter"},"defaults":{"object_type":"event"},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/attachments","is_dynamic":false},{"data":"/","is_dynamic":false}]},{"args":["object_type","category_id"],"converters":{"category_id":"IntegerConverter"},"defaults":{"object_type":"category"},"trace":[{"data":"|","is_dynamic":false},{"data":"/category/","is_dynamic":false},{"data":"category_id","is_dynamic":true},{"data":"/manage/attachments","is_dynamic":false},{"data":"/","is_dynamic":false}]}],"type":"flask_rules"},"Base":"https://indico.ice.csic.es","BasePath":"","Categories":{"info":{"endpoint":"categories.info","rules":[{"args":["category_id"],"converters":{"category_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/category/","is_dynamic":false},{"data":"category_id","is_dynamic":true},{"data":"/info","is_dynamic":false}]}],"type":"flask_rules"},"infoFrom":{"endpoint":"categories.info_from","rules":[{"args":["category_id"],"converters":{"category_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/category/","is_dynamic":false},{"data":"category_id","is_dynamic":true},{"data":"/info-from","is_dynamic":false}]}],"type":"flask_rules"},"search":{"endpoint":"categories.search","rules":[{"args":[],"converters":{},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/category/search","is_dynamic":false}]}],"type":"flask_rules"}},"Contributions":{"display_contribution":{"endpoint":"contributions.display_contribution","rules":[{"args":["contrib_id","confId"],"converters":{"contrib_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/contributions/","is_dynamic":false},{"data":"contrib_id","is_dynamic":true},{"data":"/","is_dynamic":false}]}],"type":"flask_rules"}},"EventCreation":{"endpoint":"events.create","rules":[{"args":["event_type"],"converters":{"event_type":"AnyConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/create/","is_dynamic":false},{"data":"event_type","is_dynamic":true}]}],"type":"flask_rules"},"ExportAPIBase":"/export","FavoriteUserAdd":"/user/favorites/users/","FavoriteUserRemove":{"endpoint":"users.user_favorites_user_remove","rules":[{"args":["user_id","fav_user_id"],"converters":{"fav_user_id":"IntegerConverter","user_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/user/","is_dynamic":false},{"data":"user_id","is_dynamic":true},{"data":"/favorites/users/","is_dynamic":false},{"data":"fav_user_id","is_dynamic":true}]},{"args":["fav_user_id"],"converters":{"fav_user_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/user/favorites/users/","is_dynamic":false},{"data":"fav_user_id","is_dynamic":true}]}],"type":"flask_rules"},"Favorites":"/user/favorites/","FontSassBundle":["/static/assets/core/css/indico_fonts_7390f9b4.min.css"],"ImagesBase":"/images","JsonRpcService":"/services/json-rpc","Login":"https://indico.ice.csic.es/login/","ManagementAttachmentInfoColumn":{"endpoint":"attachments.management_info_column","rules":[{"args":["contrib_id","subcontrib_id","object_type","confId"],"converters":{"confId":"IntegerConverter","contrib_id":"IntegerConverter","subcontrib_id":"IntegerConverter"},"defaults":{"object_type":"subcontribution"},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/contributions/","is_dynamic":false},{"data":"contrib_id","is_dynamic":true},{"data":"/subcontributions/","is_dynamic":false},{"data":"subcontrib_id","is_dynamic":true},{"data":"/attachments/info-column","is_dynamic":false}]},{"args":["contrib_id","object_type","confId"],"converters":{"confId":"IntegerConverter","contrib_id":"IntegerConverter"},"defaults":{"object_type":"contribution"},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/contributions/","is_dynamic":false},{"data":"contrib_id","is_dynamic":true},{"data":"/attachments/info-column","is_dynamic":false}]},{"args":["object_type","session_id","confId"],"converters":{"confId":"IntegerConverter","session_id":"IntegerConverter"},"defaults":{"object_type":"session"},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/sessions/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/attachments/info-column","is_dynamic":false}]},{"args":["object_type","confId"],"converters":{"confId":"IntegerConverter"},"defaults":{"object_type":"event"},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/attachments/info-column","is_dynamic":false}]},{"args":["object_type","category_id"],"converters":{"category_id":"IntegerConverter"},"defaults":{"object_type":"category"},"trace":[{"data":"|","is_dynamic":false},{"data":"/category/","is_dynamic":false},{"data":"category_id","is_dynamic":true},{"data":"/manage/attachments/info-column","is_dynamic":false}]}],"type":"flask_rules"},"PermissionsDialog":{"endpoint":"event_management.permissions_dialog","rules":[{"args":["type"],"converters":{"type":"AnyConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/permissions-dialog/","is_dynamic":false},{"data":"type","is_dynamic":true}]}],"type":"flask_rules"},"RegistrationForm":{"field":{"add":"/event/:confId/manage/registration/:confFormId/form/sections/:sectionId/fields","modify":"/event/:confId/manage/registration/:confFormId/form/sections/:sectionId/fields/:fieldId","move":"/event/:confId/manage/registration/:confFormId/form/sections/:sectionId/fields/:fieldId/move","toggle":"/event/:confId/manage/registration/:confFormId/form/sections/:sectionId/fields/:fieldId/toggle"},"section":{"add":"/event/:confId/manage/registration/:confFormId/form/sections","modify":"/event/:confId/manage/registration/:confFormId/form/sections/:sectionId","move":"/event/:confId/manage/registration/:confFormId/form/sections/:sectionId/move","toggle":"/event/:confId/manage/registration/:confFormId/form/sections/:sectionId/toggle"},"text":{"add":"/event/:confId/manage/registration/:confFormId/form/sections/:sectionId/text","modify":"/event/:confId/manage/registration/:confFormId/form/sections/:sectionId/text/:fieldId","move":"/event/:confId/manage/registration/:confFormId/form/sections/:sectionId/text/:fieldId/move","toggle":"/event/:confId/manage/registration/:confFormId/form/sections/:sectionId/text/:fieldId/toggle"}},"RoomBookingBook":{"endpoint":"rooms.book","rules":[{"args":[],"converters":{},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/rooms/book","is_dynamic":false}]}],"type":"flask_rules"},"RoomBookingBookRoom":{"endpoint":"rooms.room_book","rules":[{"args":["roomLocation","roomID"],"converters":{"roomID":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/rooms/room/","is_dynamic":false},{"data":"roomLocation","is_dynamic":true},{"data":"/","is_dynamic":false},{"data":"roomID","is_dynamic":true},{"data":"/book","is_dynamic":false}]}],"type":"flask_rules"},"RoomBookingCloneBooking":{"endpoint":"rooms.roomBooking-cloneBooking","rules":[{"args":["roomLocation","resvID"],"converters":{"resvID":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/rooms/booking/","is_dynamic":false},{"data":"roomLocation","is_dynamic":true},{"data":"/","is_dynamic":false},{"data":"resvID","is_dynamic":true},{"data":"/clone","is_dynamic":false}]}],"type":"flask_rules"},"RoomBookingDetails":{"endpoint":"rooms.roomBooking-roomDetails","rules":[{"args":["roomLocation","roomID"],"converters":{"roomID":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/rooms/room/","is_dynamic":false},{"data":"roomLocation","is_dynamic":true},{"data":"/","is_dynamic":false},{"data":"roomID","is_dynamic":true},{"data":"/","is_dynamic":false}]}],"type":"flask_rules"},"Sessions":{"display_session":{"endpoint":"sessions.display_session","rules":[{"args":["session_id","confId"],"converters":{"session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/sessions/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/","is_dynamic":false}]}],"type":"flask_rules"}},"Timetable":{"breaks":{"add":{"endpoint":"timetable.add_break","rules":[{"args":["session_id","confId"],"converters":{"session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/add-break","is_dynamic":false}]},{"args":["confId"],"converters":{},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/add-break","is_dynamic":false}]}],"type":"flask_rules"}},"contributions":{"add":{"endpoint":"timetable.add_contribution","rules":[{"args":["session_id","confId"],"converters":{"session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/add-contribution","is_dynamic":false}]},{"args":["confId"],"converters":{},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/add-contribution","is_dynamic":false}]}],"type":"flask_rules"},"clone":{"endpoint":"timetable.clone_contribution","rules":[{"args":["session_id","confId"],"converters":{"session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/clone-contribution","is_dynamic":false}]},{"args":["confId"],"converters":{},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/clone-contribution","is_dynamic":false}]}],"type":"flask_rules"},"notScheduled":{"endpoint":"timetable.not_scheduled","rules":[{"args":["session_id","confId"],"converters":{"session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/not-scheduled","is_dynamic":false}]},{"args":["confId"],"converters":{},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/not-scheduled","is_dynamic":false}]}],"type":"flask_rules"},"protection":{"endpoint":"contributions.manage_contrib_protection","rules":[{"args":["contrib_id","confId"],"converters":{"contrib_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/contributions/","is_dynamic":false},{"data":"contrib_id","is_dynamic":true},{"data":"/protection","is_dynamic":false}]}],"type":"flask_rules"},"schedule":{"endpoint":"timetable.schedule","rules":[{"args":["block_id","session_id","confId"],"converters":{"session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/block/","is_dynamic":false},{"data":"block_id","is_dynamic":true},{"data":"/schedule","is_dynamic":false}]},{"args":["block_id","confId"],"converters":{},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/block/","is_dynamic":false},{"data":"block_id","is_dynamic":true},{"data":"/schedule","is_dynamic":false}]},{"args":["session_id","confId"],"converters":{"session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/schedule","is_dynamic":false}]},{"args":["confId"],"converters":{},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/schedule","is_dynamic":false}]}],"type":"flask_rules"}},"default_pdf":{"endpoint":"timetable.export_default_pdf","rules":[{"args":["confId"],"converters":{},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/timetable/timetable.pdf","is_dynamic":false}]}],"type":"flask_rules"},"entries":{"delete":{"endpoint":"timetable.delete_entry","rules":[{"args":["entry_id","session_id","confId"],"converters":{"entry_id":"IntegerConverter","session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/delete","is_dynamic":false}]},{"args":["entry_id","confId"],"converters":{"entry_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/delete","is_dynamic":false}]}],"type":"flask_rules"},"edit":{"endpoint":"timetable.edit_entry","rules":[{"args":["entry_id","session_id","confId"],"converters":{"entry_id":"IntegerConverter","session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/edit","is_dynamic":false},{"data":"/","is_dynamic":false}]},{"args":["entry_id","confId"],"converters":{"entry_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/edit","is_dynamic":false},{"data":"/","is_dynamic":false}]}],"type":"flask_rules"},"editDatetime":{"endpoint":"timetable.edit_entry_datetime","rules":[{"args":["entry_id","session_id","confId"],"converters":{"entry_id":"IntegerConverter","session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/edit/datetime","is_dynamic":false}]},{"args":["entry_id","confId"],"converters":{"entry_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/edit/datetime","is_dynamic":false}]}],"type":"flask_rules"},"editTime":{"endpoint":"timetable.edit_entry_time","rules":[{"args":["entry_id","session_id","confId"],"converters":{"entry_id":"IntegerConverter","session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/edit/time","is_dynamic":false}]},{"args":["entry_id","confId"],"converters":{"entry_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/edit/time","is_dynamic":false}]}],"type":"flask_rules"},"info":{"display":{"endpoint":"timetable.entry_info","rules":[{"args":["entry_id","confId"],"converters":{"entry_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/timetable/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/info","is_dynamic":false}]}],"type":"flask_rules"},"manage":{"endpoint":"timetable.entry_info_manage","rules":[{"args":["entry_id","session_id","confId"],"converters":{"entry_id":"IntegerConverter","session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/info","is_dynamic":false}]},{"args":["entry_id","confId"],"converters":{"entry_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/info","is_dynamic":false}]}],"type":"flask_rules"}},"move":{"endpoint":"timetable.move_entry","rules":[{"args":["entry_id","session_id","confId"],"converters":{"entry_id":"IntegerConverter","session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/move","is_dynamic":false}]},{"args":["entry_id","confId"],"converters":{"entry_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/move","is_dynamic":false}]}],"type":"flask_rules"},"shift":{"endpoint":"timetable.shift_entries","rules":[{"args":["entry_id","session_id","confId"],"converters":{"entry_id":"IntegerConverter","session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/shift","is_dynamic":false}]},{"args":["entry_id","confId"],"converters":{"entry_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/shift","is_dynamic":false}]}],"type":"flask_rules"},"swap":{"endpoint":"timetable.swap_entries","rules":[{"args":["entry_id","session_id","confId"],"converters":{"entry_id":"IntegerConverter","session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/swap","is_dynamic":false}]},{"args":["entry_id","confId"],"converters":{"entry_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/entry/","is_dynamic":false},{"data":"entry_id","is_dynamic":true},{"data":"/swap","is_dynamic":false}]}],"type":"flask_rules"}},"management":{"endpoint":"timetable.management","rules":[{"args":["confId"],"converters":{},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable","is_dynamic":false},{"data":"/","is_dynamic":false}]}],"type":"flask_rules"},"pdf":{"endpoint":"timetable.export_pdf","rules":[{"args":["confId"],"converters":{},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/timetable/pdf","is_dynamic":false}]}],"type":"flask_rules"},"reschedule":{"endpoint":"timetable.reschedule","rules":[{"args":["session_id","confId"],"converters":{"session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/reschedule","is_dynamic":false}]},{"args":["confId"],"converters":{},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/reschedule","is_dynamic":false}]}],"type":"flask_rules"},"sessionBlocks":{"add":{"endpoint":"timetable.add_session_block","rules":[{"args":["session_id","confId"],"converters":{"session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/add-session-block","is_dynamic":false}]},{"args":["confId"],"converters":{},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/add-session-block","is_dynamic":false}]}],"type":"flask_rules"},"fit":{"endpoint":"timetable.fit_session_block","rules":[{"args":["block_id","session_id","confId"],"converters":{"session_id":"IntegerConverter"},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/session/","is_dynamic":false},{"data":"session_id","is_dynamic":true},{"data":"/block/","is_dynamic":false},{"data":"block_id","is_dynamic":true},{"data":"/fit","is_dynamic":false}]},{"args":["block_id","confId"],"converters":{},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/block/","is_dynamic":false},{"data":"block_id","is_dynamic":true},{"data":"/fit","is_dynamic":false}]}],"type":"flask_rules"}},"sessions":{"add":{"endpoint":"timetable.add_session","rules":[{"args":["confId"],"converters":{},"defaults":{},"trace":[{"data":"|","is_dynamic":false},{"data":"/event/","is_dynamic":false},{"data":"confId","is_dynamic":true},{"data":"/manage/timetable/add-session","is_dynamic":false}]}],"type":"flask_rules"}}}}};

OK, URL config seems fine so your BASE_URL in indico.conf is most likely correct and there don’t seem to be any strange headers (with wrong information) added to by the webserver in front of it.

I don’t understand how you end up with those broken URLs…

Could you right-click -> view page source and copy the <script>... tags that look like this?

    <script type="text/javascript" src="/assets/i18n/en_GB.js"></script>
    <script type="text/javascript" src="/assets/js-vars/global.js"></script>

    <script type="text/javascript" src="/static/assets/core/js/palette_1d6197bf.min.js"></script>
    <script type="text/javascript" src="/static/assets/core/js/jquery_f35ae1d0.min.js"></script>

I’d like to see if the path is there wrong as well.

This what I have found (the “…” stand for skipped content):

    ...
        <script>
            window.CKEDITOR_BASEPATH = "/js/lib/ckeditor/";
        </script>

        <script type="text/javascript" src="/assets/i18n/en_GB.js"></script>
        <script type="text/javascript" src="/assets/js-vars/global.js"></script>

        <script type="text/javascript" src="/static/assets/core/js/palette_1d6197bf.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/jquery_f35ae1d0.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/angular_f63f2c32.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/jed_733698c6.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/utils_ac34573e.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/presentation_82f4368e.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/calendar_60cfea1b.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/indico_jquery_6154eeaf.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/moment_b3ae849f.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/indico_core_7d874782.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/indico_legacy_d05f4358.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/indico_common_e104939a.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/clipboard_js_7863b7d9.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/taggle_js_94c3747e.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/typewatch_js_78e7d3dc.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/fullcalendar_js_b0fe9a74.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/outdated_browser_js_169a446d.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/widgets_479c041d.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/modules_event_creation_e900ca29.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/modules_global_bdbea367.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/ckeditor_9caecdc3.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/dropzone_js_12c2da89.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/modules_attachments_adb192b0.min.js"></script>
        <script type="text/javascript" src="/static/assets/core/js/modules_users_0d4fa291.min.js"></script>
        

        <script>
            moment.locale("en_GB");
            IndicoGlobalVars.isUserAuthenticated = true;
        </script>

        <script type="text/javascript" src="/assets/js-vars/user.js"></script>

     ...

    <script type="text/html" id="event-type-tooltip-lecture">A <strong>lecture</strong> is a simple event to announce a talk.<br><strong>Features</strong>: poster creation, participant management, ...</script>
    <script type="text/html" id="event-type-tooltip-meeting">A <strong>meeting</strong> is an event that defines an agenda with multiple talks.<br><strong>Features</strong>: timetable, minutes, poster creation, participants management, ...</script>
    <script type="text/html" id="event-type-tooltip-conference">A <strong>conference</strong> is a complex event with features to manage the whole life cycle of a conference.<br><strong>Features</strong>: call for abstracts, registration, e-payment, timetable, badges creation, paper reviewing,...</script>

    <script>
        (function() {
            'use strict';

            ['lecture', 'meeting', 'conference'].forEach(function(evt_type) {
                $('#create-' + evt_type).qtip({
                    content: $('#event-type-tooltip-' + evt_type).html(),
                    position: {
                        my: 'left center',
                        at: 'right center'
                    }
                });
            });
        })();
    </script>
    ...

    <script>
        (function() {
            'use strict';

            var menu = $('#side-menu-admin-sidemenu');
            var userId = $('body').data('userId');

            function getSectionKey(section) {
                return 'side-menu-admin-sidemenu-{0}-{1}'.format(userId, section.data('sectionName'));
            }

            menu.find('.section .title-wrapper').on('click', function() {
                var $this = $(this);
                var section = $this.closest('.section');
                $this.next('ul').slideToggle(300);
                section.toggleClass('collapsed');
                $.jStorage.set(getSectionKey(section), section.hasClass('collapsed'));
            });

            menu.find('.section').each(function() {
                var section = $(this);
                var collapsed = $.jStorage.get(getSectionKey(section));
                // if the active menu item is in the section, we don't touch it
                if (collapsed !== null && !section.find('.active').length) {
                    section.toggleClass('collapsed', collapsed);
                    section.children('ul').toggle(!collapsed);
                }
            });
        })();
    </script>

    ...

    <script>
        $(document).ready(function() {
            outdatedBrowser({
                bgColor: '#0b63a5',
                color: '#ffffff',
                lowerThan: 'IE11',
                languagePath: ''
            });
        })
    </script><!-- Code for admins -->
        
        <script>
            setupPrincipalListWidget({
                fieldId: "admins",
                eventId: null,
                openImmediately: false,
                groups: false,
                allowExternal: false,
                allowNetworks: false,
                networks: []
            });
        </script>
    ...

OK, those looks fine.

But I looked again at your previous screenshot from the network console and there was a redirect when trying to open e.g. https://indico.ice.csic.es/static/assets/core/js/indico_core_7d874782.min.js.

I think your redirect rewrite rules are applied to https://indico.ice.csic.es as well which they shouldn’t! They should only be applied on https://ice.csic.es/indico or whatever was your old indico location. To be exact, I believe this one is breaking all the JavaScript:

RewriteRule /indico(.*)$ https://${indico2}/$1 [R]

Since there’s no ^ at the beginning of the rule, it matches anywhere, so /static/assets/core/js/indico_core_7d874782.min.js gets redirected to /_core_7d874782.min.js (which is obviously not what you want)!

That was it! Now I have the full list of administrators!

Thank you very much!

I think I may have other wrong redirections in the files, but, now that I know what to look for, I think I’ll manage to find them. Thanks again!