diff --git a/data-access/engine/src/common/src/fits_header.cpp b/data-access/engine/src/common/src/fits_header.cpp
index c569d0cbb5b56704501ef00b8df2e0d9bf54613f..ef4d250b28888f4fe2a6d739892e2f2aaf3aeb3a 100644
--- a/data-access/engine/src/common/src/fits_header.cpp
+++ b/data-access/engine/src/common/src/fits_header.cpp
@@ -321,7 +321,8 @@ void fits::header::open_fitsfile(std::string pathname, unsigned long hdunum, int
 
    if ( !fits_open_file(&fptr, pathname.c_str(), iomode, &status) )
    {
-      if( !fits_movabs_hdu(fptr, hdunum, NULL, &status) )
+      if(hdunum > INT_MAX) throw runtime_error("hdunum too big: " + to_string(hdunum));
+      if( !fits_movabs_hdu(fptr, (int)hdunum, NULL, &status) )
       {
          this->hdunum = hdunum;
          int hdutype = -1;