Yandex Cloud
Search
Contact UsGet started
  • Blog
  • Pricing
  • Documentation
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • ML & AI
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Customer Stories
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Education and Science
    • Yandex Cloud Partner program
  • Blog
  • Pricing
  • Documentation
© 2025 Direct Cursus Technology L.L.C.
Yandex Cloud Functions
  • Comparison with other Yandex Cloud services
    • Overview
    • Managing dependencies
    • Request handler
    • Invocation context
    • Logging
    • Handling errors
    • Using the SDK
  • Tools
  • Pricing policy
  • Access management
  • Terraform reference
  • Monitoring metrics
  • Audit Trails events
  • Release notes
  • FAQ
  1. Developing in Go
  2. Handling errors

Go function error handling

Written by
Yandex Cloud
Updated at May 12, 2025

If a handler reports a Go function runtime or loading error, the runtime environment automatically captures the error and returns a JSON document with the error type in the response. For more information about the JSON document format, see Calling a function.

The error info is also written to the execution log. You can view the log via the Yandex Cloud CLI or the management console.

Examples of error handlingExamples of error handling

Case 1: User code goes outside the array boundaries; panic is expected. In fact, the handler captures panic automatically, aggregates information about it, and generates a JSON document stating an error message (errorMessage field), error type (errorType field), and stack trace (stackTrace field).

Function code:

package main

func Handler () (int, error) {
  array := []int{1, 2, 3, 4, 5}
  return array[15], nil
}

JSON document returned:

{
  "errorMessage": "user code execution causes panic: runtime error: index out of range [15] with length 5",
  "errorType": "UserCodePanic",
  "stackTrace": [
    ...
  ]
}

Case 2: User code reports an error by returning it from the function. In this case, the handler detects this error and generates a JSON document stating a custom error message (errorMessage field) and its type (errorType field).

Function code:

package main

import "fmt"

func Handler () (int, error) {
  return 0, fmt.Errorf("an error")
}

JSON document returned:

{
  "errorMessage": "an error",
  "errorType": "UserCodeError"
}

Was the article helpful?

Previous
Logging
Next
Using the SDK
© 2025 Direct Cursus Technology L.L.C.