@@ -410,6 +410,30 @@ function createUserFriendlyErrorMessage(
410410 return errorMessage
411411}
412412
413+ function getErrorDisplayCode ( sourceCode : string | undefined , resolvedCode : string ) : string {
414+ return sourceCode && sourceCode . length > 0 ? sourceCode : resolvedCode
415+ }
416+
417+ function getLineContent ( code : string , line : number | undefined ) : string | undefined {
418+ if ( line === undefined || line < 1 ) {
419+ return undefined
420+ }
421+
422+ return code . split ( '\n' ) [ line - 1 ] ?. trim ( )
423+ }
424+
425+ function getErrorDisplayMessage (
426+ message : string ,
427+ sourceCode : string | undefined ,
428+ resolvedCode : string
429+ ) : string {
430+ if ( ! sourceCode || sourceCode === resolvedCode || ! resolvedCode . includes ( '__blockRef_' ) ) {
431+ return message
432+ }
433+
434+ return message . replace ( / \s + [ " ' ] g l o b a l T h i s [ " ' ] / g, '' )
435+ }
436+
413437function resolveWorkflowVariables (
414438 code : string ,
415439 workflowVariables : Record < string , any > ,
@@ -767,6 +791,7 @@ export const POST = withRouteHandler(async (req: NextRequest) => {
767791 let stdout = ''
768792 let userCodeStartLine = 3 // Default value for error reporting
769793 let resolvedCode = '' // Store resolved code for error reporting
794+ let sourceCodeForErrors : string | undefined
770795
771796 try {
772797 const auth = await checkInternalAuth ( req )
@@ -783,6 +808,7 @@ export const POST = withRouteHandler(async (req: NextRequest) => {
783808
784809 const {
785810 code,
811+ sourceCode,
786812 params = { } ,
787813 timeout = DEFAULT_EXECUTION_TIMEOUT_MS ,
788814 language = DEFAULT_CODE_LANGUAGE ,
@@ -801,6 +827,7 @@ export const POST = withRouteHandler(async (req: NextRequest) => {
801827 isCustomTool = false ,
802828 _sandboxFiles,
803829 } = body
830+ sourceCodeForErrors = sourceCode
804831
805832 const executionParams = { ...params }
806833 executionParams . _context = undefined
@@ -1019,11 +1046,12 @@ export const POST = withRouteHandler(async (req: NextRequest) => {
10191046 } )
10201047
10211048 if ( e2bError ) {
1049+ const errorDisplayCode = getErrorDisplayCode ( sourceCodeForErrors , resolvedCode )
10221050 const { formattedError, cleanedOutput } = formatE2BError (
1023- e2bError ,
1051+ getErrorDisplayMessage ( e2bError , sourceCodeForErrors , resolvedCode ) ,
10241052 e2bStdout ,
10251053 lang ,
1026- resolvedCode ,
1054+ errorDisplayCode ,
10271055 prologueLineCount + importLineCount
10281056 )
10291057 return NextResponse . json (
@@ -1101,11 +1129,12 @@ export const POST = withRouteHandler(async (req: NextRequest) => {
11011129 } )
11021130
11031131 if ( e2bError ) {
1132+ const errorDisplayCode = getErrorDisplayCode ( sourceCodeForErrors , resolvedCode )
11041133 const { formattedError, cleanedOutput } = formatE2BError (
1105- e2bError ,
1134+ getErrorDisplayMessage ( e2bError , sourceCodeForErrors , resolvedCode ) ,
11061135 e2bStdout ,
11071136 lang ,
1108- resolvedCode ,
1137+ errorDisplayCode ,
11091138 prologueLineCount
11101139 )
11111140 return NextResponse . json (
@@ -1192,13 +1221,16 @@ export const POST = withRouteHandler(async (req: NextRequest) => {
11921221 let adjustedLineContent = ivmError . lineContent
11931222 if ( prependedLineCount > 0 && ivmError . line !== undefined ) {
11941223 adjustedLine = Math . max ( 1 , ivmError . line - prependedLineCount )
1195- const codeLines = resolvedCode . split ( '\n' )
1196- if ( adjustedLine <= codeLines . length ) {
1197- adjustedLineContent = codeLines [ adjustedLine - 1 ] ?. trim ( )
1198- }
11991224 }
1225+ const errorDisplayCode = getErrorDisplayCode ( sourceCodeForErrors , resolvedCode )
1226+ const displayMessage = getErrorDisplayMessage (
1227+ ivmError . message ,
1228+ sourceCodeForErrors ,
1229+ resolvedCode
1230+ )
1231+ adjustedLineContent = getLineContent ( errorDisplayCode , adjustedLine ) ?? adjustedLineContent
12001232 const enhancedError : EnhancedError = {
1201- message : ivmError . message ,
1233+ message : displayMessage ,
12021234 name : ivmError . name ,
12031235 stack : ivmError . stack ,
12041236 originalError : ivmError ,
@@ -1210,7 +1242,7 @@ export const POST = withRouteHandler(async (req: NextRequest) => {
12101242 const userFriendlyErrorMessage = createUserFriendlyErrorMessage (
12111243 enhancedError ,
12121244 requestId ,
1213- resolvedCode
1245+ errorDisplayCode
12141246 )
12151247
12161248 const detailLogFn = isSystemError ? logger . error . bind ( logger ) : logger . warn . bind ( logger )
@@ -1261,11 +1293,12 @@ export const POST = withRouteHandler(async (req: NextRequest) => {
12611293 executionTime,
12621294 } )
12631295
1264- const enhancedError = extractEnhancedError ( error , userCodeStartLine , resolvedCode )
1296+ const errorDisplayCode = getErrorDisplayCode ( sourceCodeForErrors , resolvedCode )
1297+ const enhancedError = extractEnhancedError ( error , userCodeStartLine , errorDisplayCode )
12651298 const userFriendlyErrorMessage = createUserFriendlyErrorMessage (
12661299 enhancedError ,
12671300 requestId ,
1268- resolvedCode
1301+ errorDisplayCode
12691302 )
12701303
12711304 logger . error ( `[${ requestId } ] Enhanced error details` , {
0 commit comments