diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index e034ac53295..37b65ab72ac 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -22934,6 +22934,8 @@ Indices only work when using DWARF debugging information, not stabs.
 It is possible for @value{GDBN} to automatically save a copy of this index in a
 cache on disk and retrieve it from there when loading the same binary in the
 future.  This feature can be turned on with @kbd{set index-cache enabled on}.
+Note that the cache will use the ELF build ID to identify the cached indices,
+so files without Build ID will not have their index cached.
 The following commands can be used to tweak the behavior of the index cache.
 
 @table @code
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 71fd352343a..f6a221a57de 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -2237,7 +2237,11 @@ get_gdb_index_contents_from_cache (objfile *obj, dwarf2_per_bfd *dwarf2_per_bfd)
 {
   const bfd_build_id *build_id = build_id_bfd_get (obj->obfd.get ());
   if (build_id == nullptr)
+  {
+    dwarf_read_debug_printf ("Not using index-cache for %s due to missing build-id",
+            objfile_name (obj));
     return {};
+  }
 
   return global_index_cache.lookup_gdb_index (build_id,
 					      &dwarf2_per_bfd->index_cache_res);
