С Go 1.13: fmt.Errorf("context: %w", err) - глагол %w оборачивает err. Оригинальная ошибка сохраняется и доступна через errors.Unwrap, errors.Is, errors.As. Цепочка обёрток позволяет добавлять контекст и проверять тип/значение вверх по цепочке.