dd-sdk-reactnative icon indicating copy to clipboard operation
dd-sdk-reactnative copied to clipboard

DdRum addError message being ommited

Open dalmago opened this issue 1 year ago • 3 comments

Describe the bug

While using DdRum.addError to send errors to Datadog, under some conditions the error message is replaced by the stack trace.

From empirical testing, I noticed that these conditions happen when the stack trace parameter starts with some words and a colon. Then the error message is replaced with what's after the colon in the stack trace.

Reproduction steps

From the errors below, the only ones that I can see the error message on Datadog are the 2nd and 4th messages.

// Error stack will start with "Error:", so message is replaced with stack trace
try {
  throw new Error("my test error 1");
} catch (e) {
  void DdRum.addError(
    "Error: my 1st message",
    ErrorSource.CUSTOM,
    (e as Error).stack ?? "empty stack",
    {
      a: 1,
    }
  );
}

// If a regular string is placed in the stack trace parameter, it works fine!
void DdRum.addError(
  "Error: my 2nd message",
  ErrorSource.CUSTOM,
  "my 2nd stack info",
  {
    a: 2,
  }
);    

// If stack trace param has a colon, error message is replaced! Not exclusive for Error objects
void DdRum.addError(
  "Error: my 3rd message",
  ErrorSource.CUSTOM,
  "Error: my 3rd stack info",
  {
    a: 3,
  }
);

// Works fine if I add a linebreak before the stack trace (my current workaround)
try {
  throw new Error("my test error 4");
} catch (e) {
  void DdRum.addError(
    "Error: my 4th message",
    ErrorSource.CUSTOM,
    "\n" + ((e as Error).stack ?? "empty stack"),
    {
      a: 4,
    }
  );
}

// Issue not exclusive to "Error:", any work preceding a colon will have the same effect
void DdRum.addError(
  "Error: my 5th message",
  ErrorSource.CUSTOM,
  "ABCD: my 5th stack info",
  {
    a: 5,
  }
);
image

SDK logs

No response

Expected behavior

No response

Affected SDK versions

2.4.0

Latest working SDK version

NA

Did you confirm if the latest SDK version fixes the bug?

Yes

Integration Methods

Yarn

React Native Version

0.73.6

Package.json Contents

"@datadog/mobile-react-native": "^2.4.0"

iOS Setup

No response

Android Setup

No response

Device Information

No response

Other relevant information

No response

dalmago avatar Jul 11 '24 05:07 dalmago