diff --git a/app/static/js/table_recap.js b/app/static/js/table_recap.js
index 7242ed39148a15375a05f8c8cee2d78fd484cbbb..cd30896f790fbfbd6bc3565cc8dad5d3747e6203 100644
--- a/app/static/js/table_recap.js
+++ b/app/static/js/table_recap.js
@@ -14,6 +14,8 @@ $(function () {
         const url = new URL(document.URL);
         const formsemestre_id = url.searchParams.get("formsemestre_id");
         const order_info_key = JSON.stringify([url.pathname, formsemestre_id]);
+        const etudids_key = JSON.stringify(["etudids", url.origin, formsemestre_id]);
+        const noms_key = JSON.stringify(["noms", url.origin, formsemestre_id]);
         let order_info;
         if (formsemestre_id) {
             const x = localStorage.getItem(order_info_key);
@@ -157,83 +159,89 @@ $(function () {
                 }
             });
         }
-        let table = $('table.table_recap').DataTable(
-            {
-                paging: false,
-                searching: true,
-                info: false,
-                autoWidth: false,
-                fixedHeader: {
-                    header: true,
-                    footer: false
-                },
-                orderCellsTop: true, // cellules ligne 1 pour tri 
-                aaSorting: [], // Prevent initial sorting
-                colReorder: true,
-                stateSave: true, // enregistre état de la table (tris, ...)
-                "columnDefs": [
-                    {
-                        // cache les codes, le détail de l'identité, les groupes, les colonnes admission et les vides
-                        targets: hidden_colums,
-                        visible: false,
-                    },
-                    {
-                        // Elimine les 0 à gauche pour les exports excel et les "copy"
-                        targets: ["col_mod", "col_moy_gen", "col_ue", "col_res", "col_sae", "evaluation", "col_rcue"],
-                        render: function (data, type, row) {
-                            return type === 'export' ? data.replace(/0(\d\..*)/, '$1') : data;
-                        }
+        try {
+            let table = $('table.table_recap').DataTable(
+                {
+                    paging: false,
+                    searching: true,
+                    info: false,
+                    autoWidth: false,
+                    fixedHeader: {
+                        header: true,
+                        footer: false
                     },
-                    {
-                        // Elimine les décorations (fleches bonus/malus) pour les exports
-                        targets: ["col_ue_bonus", "col_malus"],
-                        render: function (data, type, row) {
-                            return type === 'export' ? data.replace(/.*(\d\d\.\d\d)/, '$1').replace(/0(\d\..*)/, '$1') : data;
+                    orderCellsTop: true, // cellules ligne 1 pour tri 
+                    aaSorting: [], // Prevent initial sorting
+                    colReorder: true,
+                    stateSave: true, // enregistre état de la table (tris, ...)
+                    "columnDefs": [
+                        {
+                            // cache les codes, le détail de l'identité, les groupes, les colonnes admission et les vides
+                            targets: hidden_colums,
+                            visible: false,
+                        },
+                        {
+                            // Elimine les 0 à gauche pour les exports excel et les "copy"
+                            targets: ["col_mod", "col_moy_gen", "col_ue", "col_res", "col_sae", "evaluation", "col_rcue"],
+                            render: function (data, type, row) {
+                                return type === 'export' ? data.replace(/0(\d\..*)/, '$1') : data;
+                            }
+                        },
+                        {
+                            // Elimine les décorations (fleches bonus/malus) pour les exports
+                            targets: ["col_ue_bonus", "col_malus"],
+                            render: function (data, type, row) {
+                                return type === 'export' ? data.replace(/.*(\d\d\.\d\d)/, '$1').replace(/0(\d\..*)/, '$1') : data;
+                            }
+                        },
+                    ],
+                    dom: 'Bfrtip',
+                    buttons: [
+                        {
+                            extend: 'copyHtml5',
+                            text: 'Copier',
+                            exportOptions: { orthogonal: 'export' }
+                        },
+                        {
+                            extend: 'excelHtml5',
+                            // footer: true, // ne fonctionne pas ?
+                            exportOptions: { orthogonal: 'export' },
+                            title: document.querySelector('table.table_recap').dataset.filename
+                        },
+                        {
+                            extend: 'collection',
+                            text: 'Colonnes affichées',
+                            autoClose: true,
+                            buttons: buttons,
+                        },
+                    ],
+                    "drawCallback": function (settings) {
+                        // permet de conserver l'ordre de tri des colonnes
+                        let order_info = JSON.stringify($('table.table_recap').DataTable().order());
+                        if (formsemestre_id) {
+                            localStorage.setItem(order_info_key, order_info);
                         }
+                        let etudids = [];
+                        document.querySelectorAll("td.identite_court").forEach(e => {
+                            etudids.push(e.dataset.etudid);
+                        });
+                        let noms = [];
+                        document.querySelectorAll("td.identite_court").forEach(e => {
+                            noms.push(e.dataset.nomprenom);
+                        });
+                        localStorage.setItem(etudids_key, JSON.stringify(etudids));
+                        localStorage.setItem(noms_key, JSON.stringify(noms));
                     },
-                ],
-                dom: 'Bfrtip',
-                buttons: [
-                    {
-                        extend: 'copyHtml5',
-                        text: 'Copier',
-                        exportOptions: { orthogonal: 'export' }
-                    },
-                    {
-                        extend: 'excelHtml5',
-                        // footer: true, // ne fonctionne pas ?
-                        exportOptions: { orthogonal: 'export' },
-                        title: document.querySelector('table.table_recap').dataset.filename
-                    },
-                    {
-                        extend: 'collection',
-                        text: 'Colonnes affichées',
-                        autoClose: true,
-                        buttons: buttons,
-                    },
-                ],
-                "drawCallback": function (settings) {
-                    // permet de conserver l'ordre de tri des colonnes
-                    let order_info = JSON.stringify($('table.table_recap').DataTable().order());
-                    if (formsemestre_id) {
-                        localStorage.setItem(order_info_key, order_info);
-                    }
-                    let etudids = [];
-                    document.querySelectorAll("td.identite_court").forEach(e => {
-                        etudids.push(e.dataset.etudid);
-                    });
-                    let noms = [];
-                    document.querySelectorAll("td.identite_court").forEach(e => {
-                        noms.push(e.dataset.nomprenom);
-                    });
-                    const etudids_key = JSON.stringify(["etudids", url.origin, formsemestre_id]);
-                    localStorage.setItem(etudids_key, JSON.stringify(etudids));
-                    const noms_key = JSON.stringify(["noms", url.origin, formsemestre_id]);
-                    localStorage.setItem(noms_key, JSON.stringify(noms));
-                },
-                "order": order_info,
-            }
-        );
+                    "order": order_info,
+                }
+            );
+        } catch (error) {
+            // l'erreur peut etre causee par un ancien storage:
+            localStorage.removeItem(etudids_key);
+            localStorage.removeItem(noms_key);
+            localStorage.removeItem(order_info_key);
+            location.reload();
+        }
         update_buttons_labels(table);
     });
     $('table.table_recap tbody').on('click', 'tr', function () {