vidjil issueshttps://gitlab.inria.fr/vidjil/vidjil/-/issues2024-03-28T15:00:09+01:00https://gitlab.inria.fr/vidjil/vidjil/-/issues/5272Improve .env handling2024-03-28T15:00:09+01:00CHESNIN ClementImprove .env handlingPour le moment, on a un fichier .env.default et un fichier .env. Dans le fonctionnement actuel, on a plusieurs souci : le fichier .env doit nécessairement être présent (il est donc commité, mais vide) et le docker compose ne fonctionne p...Pour le moment, on a un fichier .env.default et un fichier .env. Dans le fonctionnement actuel, on a plusieurs souci : le fichier .env doit nécessairement être présent (il est donc commité, mais vide) et le docker compose ne fonctionne pas bien si il n'y a pas des choses dans le .env. Ca entraine donc de devoir faire de la manutention git, ...
L'idée est de simplifier ça, pour ne pas avoir de fichier à éviter dans les commit, une config par défaut facilement surchargeable, et peut-être une config dev qui existe facilement.
Après un peu de recherche, plusieurs choses :
- Il y a deux cas : les variables qu'on veut utiliser dans les fichiers docker-compose.yml, et les variables qu'on vaut passer au docker
- Pour les variables à utiliser dans le docker-compose (par exemple $VOLUME_PATH), elles doivent forcément être dans le fichier .env, pas dans un autre (cf https://docs.docker.com/compose/environment-variables/set-environment-variables/#substitute-with-an-env-file et https://docs.docker.com/compose/compose-file/12-interpolation/)
- Pour les variables à passer aux containers, là on peut bien utiliser les env-file.
- Depuis la version 2 (passage de `docker-compose` à `docker compose`), on peut préciser sur un env-file est required ou non (cf https://docs.docker.com/compose/environment-variables/set-environment-variables/#use-the-env_file-attribute)Web 2024.04CHESNIN ClementCHESNIN Clementhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/5271Removing user/group from a server2024-03-27T14:07:04+01:00Mikaël SalsonRemoving user/group from a serverRemoving an user requires first to disable her/his account #5270.
Then we want to remove the data related to the account:
- all the data if the user is alone in her group
- what should be removed in the case of an user working within co...Removing an user requires first to disable her/his account #5270.
Then we want to remove the data related to the account:
- all the data if the user is alone in her group
- what should be removed in the case of an user working within collaborative groups? not the data, should the logs be removed?https://gitlab.inria.fr/vidjil/vidjil/-/issues/5270Controller to disable account2024-03-27T14:07:05+01:00Mikaël SalsonController to disable accountDiscussed for vdj#1170: we may want to disable account.
At first, just setting an empty password may be enough, but a cleaner status would be better.Discussed for vdj#1170: we may want to disable account.
At first, just setting an empty password may be enough, but a cleaner status would be better.https://gitlab.inria.fr/vidjil/vidjil/-/issues/5269Bad redirection after impersonate2024-03-20T17:10:05+01:00THONIER FlorianBad redirection after impersonateIf we are on a admin page and we do an impersonate, we get an empty page from the server.
No problem if we are on a common page (patients, ...).
This is probably due to a missing redirect in this case.If we are on a admin page and we do an impersonate, we get an empty page from the server.
No problem if we are on a common page (patients, ...).
This is probably due to a missing redirect in this case.Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5268Bug with sampling date not filled2024-03-22T14:08:34+01:00THONIER FlorianBug with sampling date not filledTested; At least we don't send sampling date in our request.Tested; At least we don't send sampling date in our request.Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5267Refactor database for scheduler tables2024-03-22T12:17:40+01:00THONIER FlorianRefactor database for scheduler tablesWith py4web, we don't need anymore of shedulers_xxx tables that was very specific of web2py.
We also need to add some step to write pertinent information as start/stop date of running process.With py4web, we don't need anymore of shedulers_xxx tables that was very specific of web2py.
We also need to add some step to write pertinent information as start/stop date of running process.Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5266Delete old fashion distributions computed in reads2024-03-19T12:34:55+01:00THONIER FlorianDelete old fashion distributions computed in readsWe still compute a reads->distributions values.
This values seem to ne never used.
It is made on server side.
Check if really never use and delete in that case.We still compute a reads->distributions values.
This values seem to ne never used.
It is made on server side.
Check if really never use and delete in that case.Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5265MySQL connection error ?2024-03-22T12:19:43+01:00CHESNIN ClementMySQL connection error ?Le 14/03/24, nous avons constaté des erreurs 500 de façon aléatoire sur app.
Dans le dashboard, on a effectivement beaucoup d'erreurs :
![image](/uploads/034859bcb058bb89ae67b53a3f0b2fac/image.png)
On observe deux types d'erreurs :
```
...Le 14/03/24, nous avons constaté des erreurs 500 de façon aléatoire sur app.
Dans le dashboard, on a effectivement beaucoup d'erreurs :
![image](/uploads/034859bcb058bb89ae67b53a3f0b2fac/image.png)
On observe deux types d'erreurs :
```
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/pymysql/connections.py", line 803, in _write_bytes
self._sock.sendall(data)
BrokenPipeError: [Errno 32] Broken pipe
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 944, in wrapper
ret = func(*func_args, **func_kwargs)
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 929, in wrapper
raise context["exception"]
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 908, in wrapper
context["output"] = func(*args, **kwargs)
File "/usr/share/vidjil/server/py4web/apps/vidjil/modules/vidjil_utils.py", line 73, in wrapper
result = func(*args, **kwargs)
File "/usr/share/vidjil/server/py4web/apps/vidjil/controllers/sample_set.py", line 322, in all
log.info("%s list %s" % (type, search), extra={'user_id': auth.user_id,
File "/usr/lib/python3.8/logging/__init__.py", line 1806, in info
self.log(INFO, msg, *args, **kwargs)
File "/usr/lib/python3.8/logging/__init__.py", line 1844, in log
self.logger.log(level, msg, *args, **kwargs)
File "/usr/lib/python3.8/logging/__init__.py", line 1512, in log
self._log(level, msg, args, **kwargs)
File "/usr/lib/python3.8/logging/__init__.py", line 1589, in _log
self.handle(record)
File "/usr/lib/python3.8/logging/__init__.py", line 1599, in handle
self.callHandlers(record)
File "/usr/lib/python3.8/logging/__init__.py", line 1661, in callHandlers
hdlr.handle(record)
File "/usr/lib/python3.8/logging/__init__.py", line 954, in handle
self.emit(record)
File "/usr/share/vidjil/server/py4web/apps/vidjil/common.py", line 179, in emit
db[self.table].insert(
File "/usr/local/lib/python3.8/dist-packages/pydal/objects.py", line 892, in insert
ret = self._db._adapter.insert(self, row.op_values())
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/base.py", line 546, in insert
raise e
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/base.py", line 541, in insert
self.execute(query)
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/__init__.py", line 70, in wrap
return f(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/base.py", line 468, in execute
rv = self.cursor.execute(command, *args[1:], **kwargs)
File "/usr/local/lib/python3.8/dist-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
File "/usr/local/lib/python3.8/dist-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/usr/local/lib/python3.8/dist-packages/pymysql/connections.py", line 557, in query
self._execute_command(COMMAND.COM_QUERY, sql)
File "/usr/local/lib/python3.8/dist-packages/pymysql/connections.py", line 861, in _execute_command
self._write_bytes(packet)
File "/usr/local/lib/python3.8/dist-packages/pymysql/connections.py", line 806, in _write_bytes
raise err.OperationalError(
pymysql.err.OperationalError: (2006, "MySQL server has gone away (BrokenPipeError(32, 'Broken pipe'))")
```
et
```
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 944, in wrapper
ret = func(*func_args, **func_kwargs)
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 929, in wrapper
raise context["exception"]
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 908, in wrapper
context["output"] = func(*args, **kwargs)
File "/usr/share/vidjil/server/py4web/apps/vidjil/modules/vidjil_utils.py", line 73, in wrapper
result = func(*args, **kwargs)
File "/usr/share/vidjil/server/py4web/apps/vidjil/controllers/sample_set.py", line 322, in all
log.info("%s list %s" % (type, search), extra={'user_id': auth.user_id,
File "/usr/lib/python3.8/logging/__init__.py", line 1806, in info
self.log(INFO, msg, *args, **kwargs)
File "/usr/lib/python3.8/logging/__init__.py", line 1844, in log
self.logger.log(level, msg, *args, **kwargs)
File "/usr/lib/python3.8/logging/__init__.py", line 1512, in log
self._log(level, msg, args, **kwargs)
File "/usr/lib/python3.8/logging/__init__.py", line 1589, in _log
self.handle(record)
File "/usr/lib/python3.8/logging/__init__.py", line 1599, in handle
self.callHandlers(record)
File "/usr/lib/python3.8/logging/__init__.py", line 1661, in callHandlers
hdlr.handle(record)
File "/usr/lib/python3.8/logging/__init__.py", line 954, in handle
self.emit(record)
File "/usr/share/vidjil/server/py4web/apps/vidjil/common.py", line 179, in emit
db[self.table].insert(
File "/usr/local/lib/python3.8/dist-packages/pydal/objects.py", line 892, in insert
ret = self._db._adapter.insert(self, row.op_values())
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/base.py", line 546, in insert
raise e
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/base.py", line 541, in insert
self.execute(query)
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/__init__.py", line 70, in wrap
return f(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/base.py", line 468, in execute
rv = self.cursor.execute(command, *args[1:], **kwargs)
File "/usr/local/lib/python3.8/dist-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
File "/usr/local/lib/python3.8/dist-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/usr/local/lib/python3.8/dist-packages/pymysql/connections.py", line 557, in query
self._execute_command(COMMAND.COM_QUERY, sql)
File "/usr/local/lib/python3.8/dist-packages/pymysql/connections.py", line 840, in _execute_command
raise err.InterfaceError(0, "")
pymysql.err.InterfaceError: (0, '')
```
sur différentes pages.
En jouant avec app, une page peut faire une erreur 500 et au rechargement ne plus en faire.
L'hypothèse que nous avons faite avec @fthonier serait qu'au moins un thread aurait perdu la connection mysql et ne la redémarre pas. Nous avons donc testé de redémarrer uwsgi, et pour le moment nous n'avons pas reproduit l'erreur.
cf en PJ:
- les logs docker autour du premier souci identifié (issue de la commande ```docker logs -t vidjil_uwsgi --since 2024-03-14T07 --until 2024-03-14T09```)[docker-uwsgi-logs.log](/uploads/6fca1b881a1d36cd389524ffd7fca660/docker-uwsgi-logs.log)
- un extrait des logs debug vidjil autour des mêmes heure[vidjil-debug-extract.log](/uploads/6fbbc091fb5eedffeb95643dadf788c4/vidjil-debug-extract.log)https://gitlab.inria.fr/vidjil/vidjil/-/issues/5264Lien vers l'analyse qui n'apparaît pas2024-03-25T17:15:56+01:00Anne de SeptenvilleLien vers l'analyse qui n'apparaît pasBonjour,
J'ai à nouveau des analyses dont les liens d'accès n'apparaissent pas. J'en ai déjà parlé ici #5196 pour des analyse IGK. J'ai à nouveau ce problème pour la patient 62835 dont j'ai lancé les analyses IGH et clonality-no-clu...Bonjour,
J'ai à nouveau des analyses dont les liens d'accès n'apparaissent pas. J'en ai déjà parlé ici #5196 pour des analyse IGK. J'ai à nouveau ce problème pour la patient 62835 dont j'ai lancé les analyses IGH et clonality-no-clustering.
J'arrive quand même à accéder à l'analyse en passant pas "compare some of these samples" puis "see result" mais c'est tout sauf pratique et pose d'autres problèmes ensuite.Web hotfix 2024.01CHESNIN ClementCHESNIN Clementhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/5263API can insert a sample with date 0000-00-00 leading to 500 errors later2024-03-06T14:00:47+01:00CHESNIN ClementAPI can insert a sample with date 0000-00-00 leading to 500 errors laterCf #5262 --> avec l'API, lorsqu'on a un `NC` dans le champ sampling_date du CSV, on insert un sample avec une date à 0000-00-00. Par la suite, py4web n'arrive pas à relire cette info, ce qui conduit à des erreurs 500 quand on essaye d'ou...Cf #5262 --> avec l'API, lorsqu'on a un `NC` dans le champ sampling_date du CSV, on insert un sample avec une date à 0000-00-00. Par la suite, py4web n'arrive pas à relire cette info, ce qui conduit à des erreurs 500 quand on essaye d'ouvrir les sets, ou même d'accéder à la page des users...
Plus globalement, on devrait s'arrêter plus proprement lorsqu'on rencontre une erreur dans le fichier CSVWeb 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5262Erreur 500 à l'ouverture d'un run ou d'un set2024-03-05T11:19:06+01:00Anne de SeptenvilleErreur 500 à l'ouverture d'un run ou d'un setBonjour,
J'ai uploadé des fastq via l'API ce matin. (En plusieurs fois car plusieurs projets différents + quelques debug et corrections de mon côté)
Pas de problème lors des premiers imports mais avec le dernier j'ai maintenant un...Bonjour,
J'ai uploadé des fastq via l'API ce matin. (En plusieurs fois car plusieurs projets différents + quelques debug et corrections de mon côté)
Pas de problème lors des premiers imports mais avec le dernier j'ai maintenant une erreur : An error occured (Internal Server Error, code 500) quand je veux ouvrir le run et le set dans lequel sont ces derniers fastq. L'ouverture des résultats via la page patient a l'air ok.Web 2024.04CHESNIN ClementCHESNIN Clementhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/5261Preprocess with vdj filter for large capture files ?2024-03-27T14:00:29+01:00THONIER FlorianPreprocess with vdj filter for large capture files ?We have number of user that load large file with small part of vdj in it. Should we make a preprocess that launch a vidjil-algo filter on it and delete temp data to save disk space and gain fluidity on real analysis ?
We still have iss...We have number of user that load large file with small part of vdj in it. Should we make a preprocess that launch a vidjil-algo filter on it and delete temp data to save disk space and gain fluidity on real analysis ?
We still have issue on upload data to server but it is already the case.Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5260user group don't show name anymore since release 2024.012024-02-23T10:32:02+01:00THONIER Florianuser group don't show name anymore since release 2024.01We don't get anymore name of user in information of a personal group.
Is it a feature or a bug ?We don't get anymore name of user in information of a personal group.
Is it a feature or a bug ?Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5259search field; include creator user ?2024-02-21T14:18:06+01:00THONIER Floriansearch field; include creator user ?A specific case for ~"LIL-Lille" : a patient have the same last name that a user of the team.
The search return all patients created by this users and inside the list the expected patient. Should we ?
A search with both last and firs...A specific case for ~"LIL-Lille" : a patient have the same last name that a user of the team.
The search return all patients created by this users and inside the list the expected patient. Should we ?
A search with both last and first name don't work.
One day, we will probably improve search we capacity to include field for search.
Until this time, what should we do ?Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5258Cacher/griser le bouton "run" quand on vient de cliquer / RUNNING2024-02-20T10:24:32+01:00Mathieu GiraudCacher/griser le bouton "run" quand on vient de cliquer / RUNNING
Discussion suite à #5244
Discussion suite à #5244CHESNIN ClementCHESNIN Clementhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/5257Hotfix 2024.01; Error for pre-fuse process2024-02-16T15:11:49+01:00THONIER FlorianHotfix 2024.01; Error for pre-fuse processSince releaese, we got error for pre-fuse scripts.
* path of pre-fuse scipt is not correct, look at usr/share/vidjil/tools and not in subdirectory tools/scripts as expected. Probably an error in `defS.py` loaded in tools.
* Even if scri...Since releaese, we got error for pre-fuse scripts.
* path of pre-fuse scipt is not correct, look at usr/share/vidjil/tools and not in subdirectory tools/scripts as expected. Probably an error in `defS.py` loaded in tools.
* Even if script is copied manually in looked path, we got error with args `--pre "rnaseq_contigs.py --adaptater-length 6". Quote is not present in launched command, and adaptater-length is see by fus script and make an error.Web hotfix 2024.01THONIER FlorianTHONIER Florianhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/5256Better configuration files for docker2024-02-14T14:28:30+01:00THONIER FlorianBetter configuration files for dockerWe nned to have default configuration that we can override by other files if available.
This will be better to rebase repository for some server instances.We nned to have default configuration that we can override by other files if available.
This will be better to rebase repository for some server instances.Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5255Add a direct download icon to config result on set page2024-02-13T12:48:37+01:00THONIER FlorianAdd a direct download icon to config result on set pageTo download result of fuse for a given configuration, add a down arrow to result button to easily download all conf results
![Screenshot_20240213_124613](/uploads/e3955fac8c275ad8c476f65a040a2fbe/Screenshot_20240213_124613.png)To download result of fuse for a given configuration, add a down arrow to result button to easily download all conf results
![Screenshot_20240213_124613](/uploads/e3955fac8c275ad8c476f65a040a2fbe/Screenshot_20240213_124613.png)Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5254Deadlock occurred on app2024-02-14T15:19:07+01:00CHESNIN ClementDeadlock occurred on app## Description
Seen in https://vdb.vidjil.org/_dashboard/ticket/2457259c-1bd4-4920-9294-1ce0c220b3b8
```
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 944, in wrapper
ret = fu...## Description
Seen in https://vdb.vidjil.org/_dashboard/ticket/2457259c-1bd4-4920-9294-1ce0c220b3b8
```
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 944, in wrapper
ret = func(*func_args, **func_kwargs)
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 929, in wrapper
raise context["exception"]
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 908, in wrapper
context["output"] = func(*args, **kwargs)
File "/usr/share/vidjil/server/py4web/apps/vidjil/controllers/default.py", line 230, in run_request
res = schedule_run(request.query["sequence_file_id"], id_config, grep_reads)
File "/usr/share/vidjil/server/py4web/apps/vidjil/tasks.py", line 96, in schedule_run
db( ( db.results_file.config_id == id_config ) &
File "/usr/local/lib/python3.8/dist-packages/pydal/objects.py", line 2787, in update
ret = db._adapter.update(table, self.query, row.op_values())
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/base.py", line 586, in update
raise e
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/base.py", line 581, in update
self.execute(sql)
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/__init__.py", line 70, in wrap
return f(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/base.py", line 468, in execute
rv = self.cursor.execute(command, *args[1:], **kwargs)
File "/usr/local/lib/python3.8/dist-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
File "/usr/local/lib/python3.8/dist-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/usr/local/lib/python3.8/dist-packages/pymysql/connections.py", line 558, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.8/dist-packages/pymysql/connections.py", line 822, in _read_query_result
result.read()
File "/usr/local/lib/python3.8/dist-packages/pymysql/connections.py", line 1200, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.8/dist-packages/pymysql/connections.py", line 772, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.8/dist-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.8/dist-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1213, 'Deadlock found when trying to get lock; try restarting transaction')
```
## Reproducibility ?
Hard to know what happened...
## fix clue
May be try and see analyses that were started around this time 2024-02-12 12:30:17
## Priority
Low while it is not reproduced?Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5253500 error on usage page2024-02-14T15:18:48+01:00CHESNIN Clement500 error on usage page## Description
Seen on https://vdb.vidjil.org/_dashboard/ticket/85cadd06-f619-4015-801f-009bcf7852c8
```
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 944, in wrapper
ret = fu...## Description
Seen on https://vdb.vidjil.org/_dashboard/ticket/85cadd06-f619-4015-801f-009bcf7852c8
```
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 944, in wrapper
ret = func(*func_args, **func_kwargs)
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 929, in wrapper
raise context["exception"]
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 925, in wrapper
call(fixture.on_success, context)
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 891, in call
return f(context)
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 578, in on_success
context["output"] = render(
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 549, in render
return engine.render(filename, context=context)
File "/usr/local/lib/python3.8/dist-packages/renoir/apis.py", line 215, in render
return self._render(source, file_path, context)
File "/usr/local/lib/python3.8/dist-packages/renoir/apis.py", line 205, in _render
make_traceback(exc_info)
File "/usr/local/lib/python3.8/dist-packages/renoir/debug.py", line 116, in make_traceback
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.8/dist-packages/renoir/_internal.py", line 15, in reraise
raise value.with_traceback(tb)
File "/usr/share/vidjil/server/py4web/apps/vidjil/templates/my_account/index.html", line 47, in template
<span class="button button_token [[=fuse[3] ]]_token">
IndexError: list index out of range
```
## Reproducibility ?
Don't know how this happened
## fix clue
?
## Priority
?Web 2024.04