apache/beam · info

%s

Error message

%s

What it means

Beam's internal/errors package provides New(message), which wraps fmt.Errorf("%s", message) so that wrapped errors carry no stack traces in test recordings and are matchable. The raw message "%s" is the format specifier itself; the actual error text is whatever string was passed to errors.New.

Solutions

  1. Read the actual error message text contained in the error — this site is just the wrapping point.
  2. Trace the caller (e.g. GetContentTree, verifyRouter, setupSdkCatalog) to fix the root cause.
  3. If you need richer diagnostics, use errors.Wrap/Errorf from the same package to add context.
Defensive patterns

Strategy: try-catch

Try / catch

if err := operation(ctx); err != nil {
    var e error
    errors.As(err, &e)
    log.Printf("beam internal error: %v", e) // read actual message
}

Prevention

When it happens

Trigger: Any call to github.com/apache/beam/sdks/go/pkg/beam/internal/errors.New with a message string — e.g. ErrNoUnit, ErrNoUser, GetContentTree, verifyRouter, setupSdkCatalog failures.

Common situations: Seeing this in stack traces when a Beam component (artifact service, catalog setup, router verification) returns a plain constructed error; the underlying cause is in the message argument, not this wrapper.

Understand the failure class

Background: "This is a bug, please report it": internal invariant violations, unreachable panics, and SNH errors explained — this error's family across 47 libraries.

Related errors


AI-assisted analysis of apache/beam@12126d8942 (2026-09-13). Data as JSON: /api/errors/9ed35bfba19c71aa. Report an issue: GitHub.

Appendix: source

Thrown at sdks/go/pkg/beam/internal/errors/errors.go:28

// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Package errors contains functionality for creating and wrapping errors with improved formatting
// compared to the standard Go error functionality.
package errors

import (
	"fmt"
	"io"
	"strings"
)

// New returns an error with the given message.
func New(message string) error {
	return fmt.Errorf("%s", message)
}

// Errorf returns an error with a message formatted according to the format
// specifier.
func Errorf(format string, args ...any) error {
	return fmt.Errorf(format, args...)
}

// Wrap returns a new error annotating err with a new message.
func Wrap(err error, message string) error {
	if err == nil {
		return nil
	}
	return &beamError{
		cause: err,
		msg:   message,
		top:   getTop(err),
	}

View on GitHub (pinned to 12126d8942)