diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7cd67569b9..1010e6a42e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -27,6 +27,7 @@
- Tags should not differ based on current culture ([#1949](https://github.com/getsentry/sentry-dotnet/pull/1949))
- Always recalculate payload length ([#1957](https://github.com/getsentry/sentry-dotnet/pull/1957))
- Fix issues with envelope deserialization ([#1965](https://github.com/getsentry/sentry-dotnet/pull/1965))
+- Set default trace status to `ok` instead of `unknown_error` ([#1970](https://github.com/getsentry/sentry-dotnet/pull/1970))
## 3.21.0
diff --git a/src/Sentry/SpanTracer.cs b/src/Sentry/SpanTracer.cs
index 91fcf7480d..f5cd28e4d9 100644
--- a/src/Sentry/SpanTracer.cs
+++ b/src/Sentry/SpanTracer.cs
@@ -92,7 +92,7 @@ public class SpanTracer : ISpan
///
public void Finish()
{
- Status ??= SpanStatus.UnknownError;
+ Status ??= SpanStatus.Ok;
EndTimestamp = _stopwatch.CurrentDateTimeOffset;
}
diff --git a/src/Sentry/TransactionTracer.cs b/src/Sentry/TransactionTracer.cs
index c52c5ae028..b1a9549a93 100644
--- a/src/Sentry/TransactionTracer.cs
+++ b/src/Sentry/TransactionTracer.cs
@@ -251,7 +251,7 @@ internal ISpan StartChild(SpanId parentSpanId, string operation)
///
public void Finish()
{
- Status ??= SpanStatus.UnknownError;
+ Status ??= SpanStatus.Ok;
EndTimestamp = _stopwatch.CurrentDateTimeOffset;
foreach (var span in _spans)
diff --git a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Core3_1.verified.txt b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Core3_1.verified.txt
index 1c4ce12998..f4425027a4 100644
--- a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Core3_1.verified.txt
+++ b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Core3_1.verified.txt
@@ -33,7 +33,7 @@
Platform: csharp,
Operation: my operation,
Description: ,
- Status: UnknownError,
+ Status: Ok,
IsSampled: true,
SampleRate: 1.0,
Request: {},
@@ -41,7 +41,7 @@
trace: {
Operation: my operation,
Description: ,
- Status: UnknownError,
+ Status: Ok,
IsSampled: true
}
},
diff --git a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.DotNet6_0.verified.txt b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.DotNet6_0.verified.txt
index 99b6ee225e..f8a33986ef 100644
--- a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.DotNet6_0.verified.txt
+++ b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.DotNet6_0.verified.txt
@@ -33,7 +33,7 @@
Platform: csharp,
Operation: my operation,
Description: ,
- Status: UnknownError,
+ Status: Ok,
IsSampled: true,
SampleRate: 1.0,
Request: {},
@@ -41,7 +41,7 @@
trace: {
Operation: my operation,
Description: ,
- Status: UnknownError,
+ Status: Ok,
IsSampled: true
}
},
diff --git a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Net4_8.verified.txt b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Net4_8.verified.txt
index 31d0635ef2..d420ed6d8b 100644
--- a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Net4_8.verified.txt
+++ b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Net4_8.verified.txt
@@ -33,7 +33,7 @@
Platform: csharp,
Operation: my operation,
Description: ,
- Status: UnknownError,
+ Status: Ok,
IsSampled: true,
SampleRate: 1.0,
Request: {},
@@ -41,7 +41,7 @@
trace: {
Operation: my operation,
Description: ,
- Status: UnknownError,
+ Status: Ok,
IsSampled: true
}
},
diff --git a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsSql.verified.txt b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsSql.verified.txt
index 499b2d34f3..0ece10e737 100644
--- a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsSql.verified.txt
+++ b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsSql.verified.txt
@@ -33,7 +33,7 @@
Platform: csharp,
Operation: my operation,
Description: ,
- Status: UnknownError,
+ Status: Ok,
IsSampled: true,
SampleRate: 1.0,
Request: {},
@@ -41,7 +41,7 @@
trace: {
Operation: my operation,
Description: ,
- Status: UnknownError,
+ Status: Ok,
IsSampled: true
}
},
diff --git a/test/Sentry.EntityFramework.Tests/IntegrationTests.Simple.verified.txt b/test/Sentry.EntityFramework.Tests/IntegrationTests.Simple.verified.txt
index 1c61b239aa..3b569bd4ae 100644
--- a/test/Sentry.EntityFramework.Tests/IntegrationTests.Simple.verified.txt
+++ b/test/Sentry.EntityFramework.Tests/IntegrationTests.Simple.verified.txt
@@ -33,7 +33,7 @@
Platform: csharp,
Operation: my operation,
Description: ,
- Status: UnknownError,
+ Status: Ok,
IsSampled: true,
SampleRate: 1.0,
Request: {},
@@ -41,7 +41,7 @@
trace: {
Operation: my operation,
Description: ,
- Status: UnknownError,
+ Status: Ok,
IsSampled: true
}
},
diff --git a/test/Sentry.Tests/Protocol/TransactionTests.cs b/test/Sentry.Tests/Protocol/TransactionTests.cs
index 975d6d9bfb..8881a6f641 100644
--- a/test/Sentry.Tests/Protocol/TransactionTests.cs
+++ b/test/Sentry.Tests/Protocol/TransactionTests.cs
@@ -302,7 +302,7 @@ public void Finish_LinksExceptionToEvent()
}
[Fact]
- public void Finish_NoStatus_DefaultsToUnknown()
+ public void Finish_NoStatus_DefaultsToOk()
{
// Arrange
var hub = Substitute.For();
@@ -312,7 +312,7 @@ public void Finish_NoStatus_DefaultsToUnknown()
transaction.Finish();
// Assert
- transaction.Status.Should().Be(SpanStatus.UnknownError);
+ transaction.Status.Should().Be(SpanStatus.Ok);
}
[Fact]
@@ -331,4 +331,35 @@ public void Finish_StatusSet_DoesNotOverride()
// Assert
transaction.Status.Should().Be(SpanStatus.DataLoss);
}
+
+ [Fact]
+ public void Finish_ChildSpan_NoStatus_DefaultsToOk()
+ {
+ // Arrange
+ var hub = Substitute.For();
+ var transaction = new TransactionTracer(hub, "my name", "my op");
+ var span = transaction.StartChild("child op");
+
+ // Act
+ span.Finish();
+
+ // Assert
+ span.Status.Should().Be(SpanStatus.Ok);
+ }
+
+ [Fact]
+ public void Finish_ChildSpan_StatusSet_DoesNotOverride()
+ {
+ // Arrange
+ var hub = Substitute.For();
+ var transaction = new TransactionTracer(hub, "my name", "my op");
+ var span = transaction.StartChild("child op");
+ span.Status = SpanStatus.DataLoss;
+
+ // Act
+ span.Finish();
+
+ // Assert
+ span.Status.Should().Be(SpanStatus.DataLoss);
+ }
}
diff --git a/test/Sentry.Tests/TransactionProcessorTests.Simple.verified.txt b/test/Sentry.Tests/TransactionProcessorTests.Simple.verified.txt
index 381470823b..53be8c218c 100644
--- a/test/Sentry.Tests/TransactionProcessorTests.Simple.verified.txt
+++ b/test/Sentry.Tests/TransactionProcessorTests.Simple.verified.txt
@@ -60,7 +60,7 @@
Platform: csharp,
Operation: my operation,
Description: ,
- Status: UnknownError,
+ Status: Ok,
IsSampled: true,
SampleRate: 1.0,
Request: {},
@@ -69,7 +69,7 @@
trace: {
Operation: my operation,
Description: ,
- Status: UnknownError,
+ Status: Ok,
IsSampled: true
}
},