diff --git a/lib/lsan/lsan_common.cc b/lib/lsan/lsan_common.cc
index 11a51db..7fa0675 100644
--- a/lib/lsan/lsan_common.cc
+++ b/lib/lsan/lsan_common.cc
@@ -295,14 +295,10 @@
   LsanMetadata m(chunk);
   if (!m.allocated()) return;
   if (m.tag() == kDirectlyLeaked || m.tag() == kIndirectlyLeaked) {
-    uptr size = 0;
-    const uptr *trace = StackDepotGet(m.stack_trace_id(), &size);
-    // Ignore leaks with one-frame stack traces (which often come from
-    // coroutines) - they are not actionable.
-    if (size <= 1)
-      return;
     uptr resolution = flags()->resolution;
     if (resolution > 0) {
+      uptr size = 0;
+      const uptr *trace = StackDepotGet(m.stack_trace_id(), &size);
       size = Min(size, resolution);
       leak_report->Add(StackDepotPut(trace, size), m.requested_size(), m.tag());
     } else {
diff --git a/lib/lsan/lsan_common_linux.cc b/lib/lsan/lsan_common_linux.cc
index 6517cf1..ef8857f 100644
--- a/lib/lsan/lsan_common_linux.cc
+++ b/lib/lsan/lsan_common_linux.cc
@@ -115,8 +115,12 @@
   LsanMetadata m(chunk);
   if (m.allocated() && m.tag() != kReachable) {
     u32 stack_id = m.stack_trace_id();
-    if (!stack_id || linker->containsAddress(GetCallerPC(
-                         stack_id, param->stack_depot_reverse_map))) {
+    uptr caller_pc = 0;
+    if (stack_id > 0)
+      caller_pc = GetCallerPC(stack_id, param->stack_depot_reverse_map);
+    // If caller_pc is unknown, this chunk may be allocated in a coroutine. Mark
+    // it as reachable, as we can't properly report its allocation stack anyway.
+    if (caller_pc == 0 || linker->containsAddress(caller_pc)) {
       m.set_tag(kReachable);
       param->frontier->push_back(chunk);
     }
