diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8a6b1934f99d477fe3a2b1cd481e81eb30856eab..a31fcd2e2cd656e52e175ed453557ca5c75ab549 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ Changelog
 - [FIX] Vue du différentiel d'une synchro : prise en compte du paramètre de config 'source_code_column'.
 - [FIX] Correction du SQL générant V_DIFF_* pour le cas d'une synchro depuis une source non-importable
 - [FIX] Import : correction du SQL généré en cas de valeur booléenne dans les données sources.
+- [FIX] Détermination des colonnes de la table source : correction d'un bug potentiel + amélioration de la remontée d'erreur.
 - Nouvelles commandes pour lister les imports ('list imports') et synchros ('list synchros'). 
 - Synchro : spécification dans la table SOURCE (colonnes 'synchro_*_enabled') des opérations autorisées ou non lors de la synchro (màj bdd requise).
   Exemple : ne pas autoriser le 'delete' est utile lorsque les données sources sont obtenues de façon incrémentale
diff --git a/src/UnicaenDbImport/Service/Database/DatabaseService.php b/src/UnicaenDbImport/Service/Database/DatabaseService.php
index 0b850ab07f18bd8cf30643f5315b7c06bbadd92a..d6eee7dd47bd462d6436b31663cd386c0d76f09a 100644
--- a/src/UnicaenDbImport/Service/Database/DatabaseService.php
+++ b/src/UnicaenDbImport/Service/Database/DatabaseService.php
@@ -483,10 +483,14 @@ class DatabaseService extends AbstractDatabaseService
      */
     public function fetchSourceTableColumnNames(): array
     {
-        $selectSql = $this->codeGenerator->generateSQLForSelectSourceTableColumnsInformation($this->source);
+        $sourceTableName = $this->source->getTable();
+        $selectSql = $this->codeGenerator->generateSQLForSelectSourceTableColumnsInformation($sourceTableName);
 
         try {
             $result = $this->queryExecutor->fetchAll($selectSql, $this->source->getConnection());
+            if (!$result) {
+                throw DatabaseServiceException::error("Impossible de déterminer les colonnes de la table/vue source '$sourceTableName'");
+            }
             return array_map(fn ($row) => $row['column_name'], $result);
         } catch (Exception $e) {
             throw DatabaseServiceException::error("Erreur lors du fetch", $e);
diff --git a/src/UnicaenDbImport/Service/Facade/AbstractFacadeService.php b/src/UnicaenDbImport/Service/Facade/AbstractFacadeService.php
index 18ec944d8c945f2f7ffb24626d9e299bf965f8d5..9d5328c65e2f797cdb80cf778998da7ad9356c21 100644
--- a/src/UnicaenDbImport/Service/Facade/AbstractFacadeService.php
+++ b/src/UnicaenDbImport/Service/Facade/AbstractFacadeService.php
@@ -235,7 +235,8 @@ abstract class AbstractFacadeService
             try {
                 $columns = $this->databaseService->fetchSourceTableColumnNames();
             } catch (DatabaseServiceException $e) {
-                throw new Exception("Erreur rencontrée lors de l'obtention des colonnes de la table source", null, $e);
+                throw new Exception(
+                    "Erreur rencontrée lors de l'obtention des colonnes de la table source : " . $e->getMessage(), null, $e);
             }
         }