diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3d380ad2..9f18369a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+Unreleased
+----------
+- Adjusted normalization logic to not fail overall operation on build ID
+ read failure
+
+
0.2.0-rc.0
----------
- Added support for transparently following debug links in ELF binaries
diff --git a/capi/include/blazesym.h b/capi/include/blazesym.h
index b925d164..f377b890 100644
--- a/capi/include/blazesym.h
+++ b/capi/include/blazesym.h
@@ -305,6 +305,9 @@ typedef struct blaze_normalizer_opts {
/**
* Whether to read and report build IDs as part of the normalization
* process.
+ *
+ * Note that build ID read failures will be swallowed without
+ * failing the normalization operation.
*/
bool build_ids;
/**
@@ -347,7 +350,7 @@ typedef struct blaze_user_meta_elf {
*/
size_t build_id_len;
/**
- * The optional build ID of the ELF file, if found.
+ * The optional build ID of the ELF file, if found and readable.
*/
uint8_t *build_id;
/**
diff --git a/capi/src/normalize.rs b/capi/src/normalize.rs
index edf6fcac..06406f64 100644
--- a/capi/src/normalize.rs
+++ b/capi/src/normalize.rs
@@ -51,6 +51,9 @@ pub struct blaze_normalizer_opts {
pub cache_maps: bool,
/// Whether to read and report build IDs as part of the normalization
/// process.
+ ///
+ /// Note that build ID read failures will be swallowed without
+ /// failing the normalization operation.
pub build_ids: bool,
/// Whether or not to cache build IDs. This flag only has an effect
/// if build ID reading is enabled in the first place.
@@ -292,7 +295,7 @@ pub struct blaze_user_meta_elf {
pub path: *mut c_char,
/// The length of the build ID, in bytes.
pub build_id_len: usize,
- /// The optional build ID of the ELF file, if found.
+ /// The optional build ID of the ELF file, if found and readable.
pub build_id: *mut u8,
/// Unused member available for future expansion.
pub reserved: [u8; 8],
diff --git a/src/normalize/buildid.rs b/src/normalize/buildid.rs
index f55bb9ba..9e6a9b19 100644
--- a/src/normalize/buildid.rs
+++ b/src/normalize/buildid.rs
@@ -99,7 +99,22 @@ fn read_build_id_impl(parser: &ElfParser) -> Result