func reportErrorWithClarification()

in vmextension/vmextension.go [292:309]


func reportErrorWithClarification(ve *VMExtension, c cmd, errorCode int, msg string) error {
	if !c.shouldReportStatus {
		ve.ExtensionLogger.Info("status not reported for operation (by design)")
		return nil
	}

	requestedSequenceNumber, err := ve.GetRequestedSequenceNumber()
	if err != nil {
		return err
	}

	s := status.NewError(c.operation.ToStatusName(), status.ErrorClarification{Code: errorCode, Message: msg})
	if err := s.Save(ve.HandlerEnv.StatusFolder, requestedSequenceNumber); err != nil {
		ve.ExtensionLogger.Error("Failed to save handler status: %v", err)
		return errors.Wrap(err, "failed to save handler status")
	}
	return nil
}