diff --git a/openapi-internal.yaml b/openapi-internal.yaml
index 656cc4d..bb057c9 100644
--- a/openapi-internal.yaml
+++ b/openapi-internal.yaml
@@ -97,7 +97,7 @@ paths:
         - Mapfixes
       parameters:
         - $ref: '#/components/parameters/MapfixID'
-        - name: StatusMessage
+        - name: ErrorMessage
           in: query
           required: true
           schema:
@@ -138,7 +138,7 @@ paths:
         - Mapfixes
       parameters:
         - $ref: '#/components/parameters/MapfixID'
-        - name: StatusMessage
+        - name: ErrorMessage
           in: query
           required: true
           schema:
@@ -283,7 +283,7 @@ paths:
         - Submissions
       parameters:
         - $ref: '#/components/parameters/SubmissionID'
-        - name: StatusMessage
+        - name: ErrorMessage
           in: query
           required: true
           schema:
@@ -324,7 +324,7 @@ paths:
         - Submissions
       parameters:
         - $ref: '#/components/parameters/SubmissionID'
-        - name: StatusMessage
+        - name: ErrorMessage
           in: query
           required: true
           schema:
diff --git a/pkg/internal/oas_client_gen.go b/pkg/internal/oas_client_gen.go
index 78d4f40..c6fce31 100644
--- a/pkg/internal/oas_client_gen.go
+++ b/pkg/internal/oas_client_gen.go
@@ -269,15 +269,15 @@ func (c *Client) sendActionMapfixAccepted(ctx context.Context, params ActionMapf
 	stage = "EncodeQueryParams"
 	q := uri.NewQueryEncoder()
 	{
-		// Encode "StatusMessage" parameter.
+		// Encode "ErrorMessage" parameter.
 		cfg := uri.QueryParameterEncodingConfig{
-			Name:    "StatusMessage",
+			Name:    "ErrorMessage",
 			Style:   uri.QueryStyleForm,
 			Explode: true,
 		}
 
 		if err := q.EncodeParam(cfg, func(e uri.Encoder) error {
-			return e.EncodeValue(conv.StringToString(params.StatusMessage))
+			return e.EncodeValue(conv.StringToString(params.ErrorMessage))
 		}); err != nil {
 			return res, errors.Wrap(err, "encode query")
 		}
@@ -378,15 +378,15 @@ func (c *Client) sendActionMapfixRequestChanges(ctx context.Context, params Acti
 	stage = "EncodeQueryParams"
 	q := uri.NewQueryEncoder()
 	{
-		// Encode "StatusMessage" parameter.
+		// Encode "ErrorMessage" parameter.
 		cfg := uri.QueryParameterEncodingConfig{
-			Name:    "StatusMessage",
+			Name:    "ErrorMessage",
 			Style:   uri.QueryStyleForm,
 			Explode: true,
 		}
 
 		if err := q.EncodeParam(cfg, func(e uri.Encoder) error {
-			return e.EncodeValue(conv.StringToString(params.StatusMessage))
+			return e.EncodeValue(conv.StringToString(params.ErrorMessage))
 		}); err != nil {
 			return res, errors.Wrap(err, "encode query")
 		}
@@ -887,15 +887,15 @@ func (c *Client) sendActionSubmissionAccepted(ctx context.Context, params Action
 	stage = "EncodeQueryParams"
 	q := uri.NewQueryEncoder()
 	{
-		// Encode "StatusMessage" parameter.
+		// Encode "ErrorMessage" parameter.
 		cfg := uri.QueryParameterEncodingConfig{
-			Name:    "StatusMessage",
+			Name:    "ErrorMessage",
 			Style:   uri.QueryStyleForm,
 			Explode: true,
 		}
 
 		if err := q.EncodeParam(cfg, func(e uri.Encoder) error {
-			return e.EncodeValue(conv.StringToString(params.StatusMessage))
+			return e.EncodeValue(conv.StringToString(params.ErrorMessage))
 		}); err != nil {
 			return res, errors.Wrap(err, "encode query")
 		}
@@ -996,15 +996,15 @@ func (c *Client) sendActionSubmissionRequestChanges(ctx context.Context, params
 	stage = "EncodeQueryParams"
 	q := uri.NewQueryEncoder()
 	{
-		// Encode "StatusMessage" parameter.
+		// Encode "ErrorMessage" parameter.
 		cfg := uri.QueryParameterEncodingConfig{
-			Name:    "StatusMessage",
+			Name:    "ErrorMessage",
 			Style:   uri.QueryStyleForm,
 			Explode: true,
 		}
 
 		if err := q.EncodeParam(cfg, func(e uri.Encoder) error {
-			return e.EncodeValue(conv.StringToString(params.StatusMessage))
+			return e.EncodeValue(conv.StringToString(params.ErrorMessage))
 		}); err != nil {
 			return res, errors.Wrap(err, "encode query")
 		}
diff --git a/pkg/internal/oas_handlers_gen.go b/pkg/internal/oas_handlers_gen.go
index ff02638..e8fe7a4 100644
--- a/pkg/internal/oas_handlers_gen.go
+++ b/pkg/internal/oas_handlers_gen.go
@@ -129,9 +129,9 @@ func (s *Server) handleActionMapfixAcceptedRequest(args [1]string, argsEscaped b
 					In:   "path",
 				}: params.MapfixID,
 				{
-					Name: "StatusMessage",
+					Name: "ErrorMessage",
 					In:   "query",
-				}: params.StatusMessage,
+				}: params.ErrorMessage,
 			},
 			Raw: r,
 		}
@@ -282,9 +282,9 @@ func (s *Server) handleActionMapfixRequestChangesRequest(args [1]string, argsEsc
 					In:   "path",
 				}: params.MapfixID,
 				{
-					Name: "StatusMessage",
+					Name: "ErrorMessage",
 					In:   "query",
-				}: params.StatusMessage,
+				}: params.ErrorMessage,
 			},
 			Raw: r,
 		}
@@ -1039,9 +1039,9 @@ func (s *Server) handleActionSubmissionAcceptedRequest(args [1]string, argsEscap
 					In:   "path",
 				}: params.SubmissionID,
 				{
-					Name: "StatusMessage",
+					Name: "ErrorMessage",
 					In:   "query",
-				}: params.StatusMessage,
+				}: params.ErrorMessage,
 			},
 			Raw: r,
 		}
@@ -1192,9 +1192,9 @@ func (s *Server) handleActionSubmissionRequestChangesRequest(args [1]string, arg
 					In:   "path",
 				}: params.SubmissionID,
 				{
-					Name: "StatusMessage",
+					Name: "ErrorMessage",
 					In:   "query",
-				}: params.StatusMessage,
+				}: params.ErrorMessage,
 			},
 			Raw: r,
 		}
diff --git a/pkg/internal/oas_parameters_gen.go b/pkg/internal/oas_parameters_gen.go
index d21e5e5..558c0ea 100644
--- a/pkg/internal/oas_parameters_gen.go
+++ b/pkg/internal/oas_parameters_gen.go
@@ -18,8 +18,8 @@ import (
 // ActionMapfixAcceptedParams is parameters of actionMapfixAccepted operation.
 type ActionMapfixAcceptedParams struct {
 	// The unique identifier for a submission.
-	MapfixID      int64
-	StatusMessage string
+	MapfixID     int64
+	ErrorMessage string
 }
 
 func unpackActionMapfixAcceptedParams(packed middleware.Parameters) (params ActionMapfixAcceptedParams) {
@@ -32,10 +32,10 @@ func unpackActionMapfixAcceptedParams(packed middleware.Parameters) (params Acti
 	}
 	{
 		key := middleware.ParameterKey{
-			Name: "StatusMessage",
+			Name: "ErrorMessage",
 			In:   "query",
 		}
-		params.StatusMessage = packed[key].(string)
+		params.ErrorMessage = packed[key].(string)
 	}
 	return params
 }
@@ -104,10 +104,10 @@ func decodeActionMapfixAcceptedParams(args [1]string, argsEscaped bool, r *http.
 			Err:  err,
 		}
 	}
-	// Decode query: StatusMessage.
+	// Decode query: ErrorMessage.
 	if err := func() error {
 		cfg := uri.QueryParameterDecodingConfig{
-			Name:    "StatusMessage",
+			Name:    "ErrorMessage",
 			Style:   uri.QueryStyleForm,
 			Explode: true,
 		}
@@ -124,7 +124,7 @@ func decodeActionMapfixAcceptedParams(args [1]string, argsEscaped bool, r *http.
 					return err
 				}
 
-				params.StatusMessage = c
+				params.ErrorMessage = c
 				return nil
 			}); err != nil {
 				return err
@@ -138,7 +138,7 @@ func decodeActionMapfixAcceptedParams(args [1]string, argsEscaped bool, r *http.
 					Email:        false,
 					Hostname:     false,
 					Regex:        nil,
-				}).Validate(string(params.StatusMessage)); err != nil {
+				}).Validate(string(params.ErrorMessage)); err != nil {
 					return errors.Wrap(err, "string")
 				}
 				return nil
@@ -151,7 +151,7 @@ func decodeActionMapfixAcceptedParams(args [1]string, argsEscaped bool, r *http.
 		return nil
 	}(); err != nil {
 		return params, &ogenerrors.DecodeParamError{
-			Name: "StatusMessage",
+			Name: "ErrorMessage",
 			In:   "query",
 			Err:  err,
 		}
@@ -162,8 +162,8 @@ func decodeActionMapfixAcceptedParams(args [1]string, argsEscaped bool, r *http.
 // ActionMapfixRequestChangesParams is parameters of actionMapfixRequestChanges operation.
 type ActionMapfixRequestChangesParams struct {
 	// The unique identifier for a submission.
-	MapfixID      int64
-	StatusMessage string
+	MapfixID     int64
+	ErrorMessage string
 }
 
 func unpackActionMapfixRequestChangesParams(packed middleware.Parameters) (params ActionMapfixRequestChangesParams) {
@@ -176,10 +176,10 @@ func unpackActionMapfixRequestChangesParams(packed middleware.Parameters) (param
 	}
 	{
 		key := middleware.ParameterKey{
-			Name: "StatusMessage",
+			Name: "ErrorMessage",
 			In:   "query",
 		}
-		params.StatusMessage = packed[key].(string)
+		params.ErrorMessage = packed[key].(string)
 	}
 	return params
 }
@@ -248,10 +248,10 @@ func decodeActionMapfixRequestChangesParams(args [1]string, argsEscaped bool, r
 			Err:  err,
 		}
 	}
-	// Decode query: StatusMessage.
+	// Decode query: ErrorMessage.
 	if err := func() error {
 		cfg := uri.QueryParameterDecodingConfig{
-			Name:    "StatusMessage",
+			Name:    "ErrorMessage",
 			Style:   uri.QueryStyleForm,
 			Explode: true,
 		}
@@ -268,7 +268,7 @@ func decodeActionMapfixRequestChangesParams(args [1]string, argsEscaped bool, r
 					return err
 				}
 
-				params.StatusMessage = c
+				params.ErrorMessage = c
 				return nil
 			}); err != nil {
 				return err
@@ -282,7 +282,7 @@ func decodeActionMapfixRequestChangesParams(args [1]string, argsEscaped bool, r
 					Email:        false,
 					Hostname:     false,
 					Regex:        nil,
-				}).Validate(string(params.StatusMessage)); err != nil {
+				}).Validate(string(params.ErrorMessage)); err != nil {
 					return errors.Wrap(err, "string")
 				}
 				return nil
@@ -295,7 +295,7 @@ func decodeActionMapfixRequestChangesParams(args [1]string, argsEscaped bool, r
 		return nil
 	}(); err != nil {
 		return params, &ogenerrors.DecodeParamError{
-			Name: "StatusMessage",
+			Name: "ErrorMessage",
 			In:   "query",
 			Err:  err,
 		}
@@ -761,8 +761,8 @@ func decodeActionOperationFailedParams(args [1]string, argsEscaped bool, r *http
 // ActionSubmissionAcceptedParams is parameters of actionSubmissionAccepted operation.
 type ActionSubmissionAcceptedParams struct {
 	// The unique identifier for a submission.
-	SubmissionID  int64
-	StatusMessage string
+	SubmissionID int64
+	ErrorMessage string
 }
 
 func unpackActionSubmissionAcceptedParams(packed middleware.Parameters) (params ActionSubmissionAcceptedParams) {
@@ -775,10 +775,10 @@ func unpackActionSubmissionAcceptedParams(packed middleware.Parameters) (params
 	}
 	{
 		key := middleware.ParameterKey{
-			Name: "StatusMessage",
+			Name: "ErrorMessage",
 			In:   "query",
 		}
-		params.StatusMessage = packed[key].(string)
+		params.ErrorMessage = packed[key].(string)
 	}
 	return params
 }
@@ -847,10 +847,10 @@ func decodeActionSubmissionAcceptedParams(args [1]string, argsEscaped bool, r *h
 			Err:  err,
 		}
 	}
-	// Decode query: StatusMessage.
+	// Decode query: ErrorMessage.
 	if err := func() error {
 		cfg := uri.QueryParameterDecodingConfig{
-			Name:    "StatusMessage",
+			Name:    "ErrorMessage",
 			Style:   uri.QueryStyleForm,
 			Explode: true,
 		}
@@ -867,7 +867,7 @@ func decodeActionSubmissionAcceptedParams(args [1]string, argsEscaped bool, r *h
 					return err
 				}
 
-				params.StatusMessage = c
+				params.ErrorMessage = c
 				return nil
 			}); err != nil {
 				return err
@@ -881,7 +881,7 @@ func decodeActionSubmissionAcceptedParams(args [1]string, argsEscaped bool, r *h
 					Email:        false,
 					Hostname:     false,
 					Regex:        nil,
-				}).Validate(string(params.StatusMessage)); err != nil {
+				}).Validate(string(params.ErrorMessage)); err != nil {
 					return errors.Wrap(err, "string")
 				}
 				return nil
@@ -894,7 +894,7 @@ func decodeActionSubmissionAcceptedParams(args [1]string, argsEscaped bool, r *h
 		return nil
 	}(); err != nil {
 		return params, &ogenerrors.DecodeParamError{
-			Name: "StatusMessage",
+			Name: "ErrorMessage",
 			In:   "query",
 			Err:  err,
 		}
@@ -905,8 +905,8 @@ func decodeActionSubmissionAcceptedParams(args [1]string, argsEscaped bool, r *h
 // ActionSubmissionRequestChangesParams is parameters of actionSubmissionRequestChanges operation.
 type ActionSubmissionRequestChangesParams struct {
 	// The unique identifier for a submission.
-	SubmissionID  int64
-	StatusMessage string
+	SubmissionID int64
+	ErrorMessage string
 }
 
 func unpackActionSubmissionRequestChangesParams(packed middleware.Parameters) (params ActionSubmissionRequestChangesParams) {
@@ -919,10 +919,10 @@ func unpackActionSubmissionRequestChangesParams(packed middleware.Parameters) (p
 	}
 	{
 		key := middleware.ParameterKey{
-			Name: "StatusMessage",
+			Name: "ErrorMessage",
 			In:   "query",
 		}
-		params.StatusMessage = packed[key].(string)
+		params.ErrorMessage = packed[key].(string)
 	}
 	return params
 }
@@ -991,10 +991,10 @@ func decodeActionSubmissionRequestChangesParams(args [1]string, argsEscaped bool
 			Err:  err,
 		}
 	}
-	// Decode query: StatusMessage.
+	// Decode query: ErrorMessage.
 	if err := func() error {
 		cfg := uri.QueryParameterDecodingConfig{
-			Name:    "StatusMessage",
+			Name:    "ErrorMessage",
 			Style:   uri.QueryStyleForm,
 			Explode: true,
 		}
@@ -1011,7 +1011,7 @@ func decodeActionSubmissionRequestChangesParams(args [1]string, argsEscaped bool
 					return err
 				}
 
-				params.StatusMessage = c
+				params.ErrorMessage = c
 				return nil
 			}); err != nil {
 				return err
@@ -1025,7 +1025,7 @@ func decodeActionSubmissionRequestChangesParams(args [1]string, argsEscaped bool
 					Email:        false,
 					Hostname:     false,
 					Regex:        nil,
-				}).Validate(string(params.StatusMessage)); err != nil {
+				}).Validate(string(params.ErrorMessage)); err != nil {
 					return errors.Wrap(err, "string")
 				}
 				return nil
@@ -1038,7 +1038,7 @@ func decodeActionSubmissionRequestChangesParams(args [1]string, argsEscaped bool
 		return nil
 	}(); err != nil {
 		return params, &ogenerrors.DecodeParamError{
-			Name: "StatusMessage",
+			Name: "ErrorMessage",
 			In:   "query",
 			Err:  err,
 		}
diff --git a/pkg/model/audit_event.go b/pkg/model/audit_event.go
index 998f76d..53b0632 100644
--- a/pkg/model/audit_event.go
+++ b/pkg/model/audit_event.go
@@ -42,6 +42,12 @@ type AuditEventDataChangeName struct {
 	NewName string `json:"new_name"`
 }
 
+// Validator had an error
+const AuditEventTypeError   AuditEventType = 6
+type AuditEventDataError struct {
+	Error string `json:"error"`
+}
+
 type AuditEvent struct {
 	ID           int64 `gorm:"primaryKey"`
 	CreatedAt    time.Time
diff --git a/pkg/model/mapfix.go b/pkg/model/mapfix.go
index 6c9d9a7..a296359 100644
--- a/pkg/model/mapfix.go
+++ b/pkg/model/mapfix.go
@@ -39,5 +39,4 @@ type Mapfix struct {
 	Completed     bool   // Has this version of the map been completed at least once on maptest
 	TargetAssetID uint64 // where to upload map fix.  if the TargetAssetID is 0, it's a new map.
 	StatusID      MapfixStatus
-	StatusMessage string
 }
diff --git a/pkg/model/submission.go b/pkg/model/submission.go
index 8001697..4840e5e 100644
--- a/pkg/model/submission.go
+++ b/pkg/model/submission.go
@@ -40,5 +40,4 @@ type Submission struct {
 	Completed     bool   // Has this version of the map been completed at least once on maptest
 	UploadedAssetID        uint64 // where to upload map fix.  if the TargetAssetID is 0, it's a new map.
 	StatusID      SubmissionStatus
-	StatusMessage string
 }
diff --git a/pkg/service/mapfixes.go b/pkg/service/mapfixes.go
index 20529fd..0d37705 100644
--- a/pkg/service/mapfixes.go
+++ b/pkg/service/mapfixes.go
@@ -154,7 +154,6 @@ func (svc *Service) GetMapfix(ctx context.Context, params api.GetMapfixParams) (
 		Completed:     mapfix.Completed,
 		TargetAssetID: int64(mapfix.TargetAssetID),
 		StatusID:      int32(mapfix.StatusID),
-		StatusMessage: mapfix.StatusMessage,
 	}, nil
 }
 
@@ -573,7 +572,6 @@ func (svc *Service) ActionMapfixResetSubmitting(ctx context.Context, params api.
 	target_status := model.MapfixStatusUnderConstruction
 	smap := datastore.Optional()
 	smap.Add("status_id", target_status)
-	smap.Add("status_message", "Manually forced reset")
 	err = svc.DB.Mapfixes().IfStatusThenUpdate(ctx, params.MapfixID, []model.MapfixStatus{model.MapfixStatusSubmitting}, smap)
 	if err != nil {
 		return err
@@ -975,7 +973,6 @@ func (svc *Service) ActionMapfixAccepted(ctx context.Context, params api.ActionM
 	target_status := model.MapfixStatusAcceptedUnvalidated
 	smap := datastore.Optional()
 	smap.Add("status_id", target_status)
-	smap.Add("status_message", "Manually forced reset")
 	err = svc.DB.Mapfixes().IfStatusThenUpdate(ctx, params.MapfixID, []model.MapfixStatus{model.MapfixStatusValidating}, smap)
 	if err != nil {
 		return err
diff --git a/pkg/service/submissions.go b/pkg/service/submissions.go
index 3487fac..5af693f 100644
--- a/pkg/service/submissions.go
+++ b/pkg/service/submissions.go
@@ -143,7 +143,6 @@ func (svc *Service) GetSubmission(ctx context.Context, params api.GetSubmissionP
 		Completed:     submission.Completed,
 		UploadedAssetID: api.NewOptInt64(int64(submission.UploadedAssetID)),
 		StatusID:      int32(submission.StatusID),
-		StatusMessage: submission.StatusMessage,
 	}, nil
 }
 
@@ -594,7 +593,6 @@ func (svc *Service) ActionSubmissionResetSubmitting(ctx context.Context, params
 	target_status := model.SubmissionStatusUnderConstruction
 	smap := datastore.Optional()
 	smap.Add("status_id", target_status)
-	smap.Add("status_message", "Manually forced reset")
 	err = svc.DB.Submissions().IfStatusThenUpdate(ctx, params.SubmissionID, []model.SubmissionStatus{model.SubmissionStatusSubmitting}, smap)
 	if err != nil {
 		return err
@@ -986,7 +984,6 @@ func (svc *Service) ActionSubmissionAccepted(ctx context.Context, params api.Act
 	target_status := model.SubmissionStatusAcceptedUnvalidated
 	smap := datastore.Optional()
 	smap.Add("status_id", target_status)
-	smap.Add("status_message", "Manually forced reset")
 	err = svc.DB.Submissions().IfStatusThenUpdate(ctx, params.SubmissionID, []model.SubmissionStatus{model.SubmissionStatusValidating}, smap)
 	if err != nil {
 		return err
diff --git a/pkg/service_internal/mapfixes.go b/pkg/service_internal/mapfixes.go
index 8d8b576..c52c533 100644
--- a/pkg/service_internal/mapfixes.go
+++ b/pkg/service_internal/mapfixes.go
@@ -124,12 +124,34 @@ func (svc *Service) ActionMapfixRequestChanges(ctx context.Context, params inter
 	target_status := model.MapfixStatusChangesRequested
 	smap := datastore.Optional()
 	smap.Add("status_id", target_status)
-	smap.Add("status_message", params.StatusMessage)
 	err := svc.DB.Mapfixes().IfStatusThenUpdate(ctx, params.MapfixID, []model.MapfixStatus{model.MapfixStatusSubmitting}, smap)
 	if err != nil {
 		return err
 	}
 
+	{
+		event_data := model.AuditEventDataError{
+			Error: params.ErrorMessage,
+		}
+
+		EventData, err := json.Marshal(event_data)
+		if err != nil {
+			return err
+		}
+
+		_, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{
+			ID:           0,
+			User:         ValidtorUserID,
+			ResourceType: model.ResourceMapfix,
+			ResourceID:   params.MapfixID,
+			EventType:    model.AuditEventTypeError,
+			EventData:    EventData,
+		})
+		if err != nil {
+			return err
+		}
+	}
+
 	event_data := model.AuditEventDataAction{
 		TargetStatus: uint32(target_status),
 	}
@@ -176,12 +198,36 @@ func (svc *Service) ActionMapfixAccepted(ctx context.Context, params internal.Ac
 	target_status := model.MapfixStatusAcceptedUnvalidated
 	smap := datastore.Optional()
 	smap.Add("status_id", target_status)
-	smap.Add("status_message", params.StatusMessage)
 	err := svc.DB.Mapfixes().IfStatusThenUpdate(ctx, params.MapfixID, []model.MapfixStatus{model.MapfixStatusValidating}, smap)
 	if err != nil {
 		return err
 	}
 
+	//push an error audit event
+	{
+		event_data := model.AuditEventDataError{
+			Error: params.ErrorMessage,
+		}
+
+		EventData, err := json.Marshal(event_data)
+		if err != nil {
+			return err
+		}
+
+		_, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{
+			ID:           0,
+			User:         ValidtorUserID,
+			ResourceType: model.ResourceMapfix,
+			ResourceID:   params.MapfixID,
+			EventType:    model.AuditEventTypeError,
+			EventData:    EventData,
+		})
+		if err != nil {
+			return err
+		}
+	}
+
+	// push an action audit event
 	event_data := model.AuditEventDataAction{
 		TargetStatus: uint32(target_status),
 	}
diff --git a/pkg/service_internal/submissions.go b/pkg/service_internal/submissions.go
index 5b46efd..5e6abd0 100644
--- a/pkg/service_internal/submissions.go
+++ b/pkg/service_internal/submissions.go
@@ -123,12 +123,36 @@ func (svc *Service) ActionSubmissionRequestChanges(ctx context.Context, params i
 	target_status := model.SubmissionStatusChangesRequested
 	smap := datastore.Optional()
 	smap.Add("status_id", target_status)
-	smap.Add("status_message", params.StatusMessage)
 	err := svc.DB.Submissions().IfStatusThenUpdate(ctx, params.SubmissionID, []model.SubmissionStatus{model.SubmissionStatusSubmitting}, smap)
 	if err != nil {
 		return err
 	}
 
+	//push an error audit event
+	{
+		event_data := model.AuditEventDataError{
+			Error: params.ErrorMessage,
+		}
+
+		EventData, err := json.Marshal(event_data)
+		if err != nil {
+			return err
+		}
+
+		_, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{
+			ID:           0,
+			User:         ValidtorUserID,
+			ResourceType: model.ResourceSubmission,
+			ResourceID:   params.SubmissionID,
+			EventType:    model.AuditEventTypeError,
+			EventData:    EventData,
+		})
+		if err != nil {
+			return err
+		}
+	}
+
+	// push an action audit event
 	event_data := model.AuditEventDataAction{
 		TargetStatus: uint32(target_status),
 	}
@@ -202,12 +226,37 @@ func (svc *Service) ActionSubmissionAccepted(ctx context.Context, params interna
 	target_status := model.SubmissionStatusAcceptedUnvalidated
 	smap := datastore.Optional()
 	smap.Add("status_id", target_status)
-	smap.Add("status_message", params.StatusMessage)
 	err := svc.DB.Submissions().IfStatusThenUpdate(ctx, params.SubmissionID, []model.SubmissionStatus{model.SubmissionStatusValidating}, smap)
 	if err != nil {
 		return err
 	}
 
+
+	//push an error audit event
+	{
+		event_data := model.AuditEventDataError{
+			Error: params.ErrorMessage,
+		}
+
+		EventData, err := json.Marshal(event_data)
+		if err != nil {
+			return err
+		}
+
+		_, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{
+			ID:           0,
+			User:         ValidtorUserID,
+			ResourceType: model.ResourceSubmission,
+			ResourceID:   params.SubmissionID,
+			EventType:    model.AuditEventTypeError,
+			EventData:    EventData,
+		})
+		if err != nil {
+			return err
+		}
+	}
+
+	// push an action audit event
 	event_data := model.AuditEventDataAction{
 		TargetStatus: uint32(target_status),
 	}
diff --git a/validation/api/src/internal.rs b/validation/api/src/internal.rs
index a281dcc..d689981 100644
--- a/validation/api/src/internal.rs
+++ b/validation/api/src/internal.rs
@@ -163,7 +163,7 @@ impl Context{
 	}
 	// simple submission endpoints
 	action!("submissions",action_submission_request_changes,config,ActionSubmissionRequestChangesRequest,"status/validator-request-changes",config.SubmissionID,
-		("StatusMessage",config.StatusMessage.as_str())
+		("ErrorMessage",config.ErrorMessage.as_str())
 	);
 	action!("submissions",action_submission_submitted,config,ActionSubmissionSubmittedRequest,"status/validator-submitted",config.SubmissionID,
 		("ModelVersion",config.ModelVersion.to_string().as_str())
@@ -177,7 +177,7 @@ impl Context{
 		("UploadedAssetID",config.UploadedAssetID.to_string().as_str())
 	);
 	action!("submissions",action_submission_accepted,config,ActionSubmissionAcceptedRequest,"status/validator-failed",config.SubmissionID,
-		("StatusMessage",config.StatusMessage.as_str())
+		("ErrorMessage",config.ErrorMessage.as_str())
 	);
 	pub async fn create_mapfix<'a>(&self,config:CreateMapfixRequest<'a>)->Result<MapfixIDResponse,Error>{
 		let url_raw=format!("{}/mapfixes",self.0.base_url);
@@ -192,7 +192,7 @@ impl Context{
 	}
 	// simple mapfixes endpoints
 	action!("mapfixes",action_mapfix_request_changes,config,ActionMapfixRequestChangesRequest,"status/validator-request-changes",config.MapfixID,
-		("StatusMessage",config.StatusMessage.as_str())
+		("ErrorMessage",config.ErrorMessage.as_str())
 	);
 	action!("mapfixes",action_mapfix_submitted,config,ActionMapfixSubmittedRequest,"status/validator-submitted",config.MapfixID,
 		("ModelVersion",config.ModelVersion.to_string().as_str())
@@ -204,7 +204,7 @@ impl Context{
 	);
 	action!("mapfixes",action_mapfix_uploaded,config,ActionMapfixUploadedRequest,"status/validator-uploaded",config.MapfixID,);
 	action!("mapfixes",action_mapfix_accepted,config,ActionMapfixAcceptedRequest,"status/validator-failed",config.MapfixID,
-		("StatusMessage",config.StatusMessage.as_str())
+		("ErrorMessage",config.ErrorMessage.as_str())
 	);
 	// simple operation endpoint
 	action!("operations",action_operation_failed,config,ActionOperationFailedRequest,"status/operation-failed",config.OperationID,
diff --git a/validation/api/src/types.rs b/validation/api/src/types.rs
index 9ff38bf..671b6d1 100644
--- a/validation/api/src/types.rs
+++ b/validation/api/src/types.rs
@@ -233,7 +233,7 @@ pub struct ActionSubmissionSubmittedRequest{
 #[derive(Clone,Debug)]
 pub struct ActionSubmissionRequestChangesRequest{
 	pub SubmissionID:i64,
-	pub StatusMessage:String,
+	pub ErrorMessage:String,
 }
 
 #[allow(nonstandard_style)]
@@ -247,7 +247,7 @@ pub struct ActionSubmissionUploadedRequest{
 #[derive(Clone,Debug)]
 pub struct ActionSubmissionAcceptedRequest{
 	pub SubmissionID:i64,
-	pub StatusMessage:String,
+	pub ErrorMessage:String,
 }
 
 #[derive(Clone,Copy,Debug,serde::Deserialize)]
@@ -272,7 +272,7 @@ pub struct ActionMapfixSubmittedRequest{
 #[derive(Clone,Debug)]
 pub struct ActionMapfixRequestChangesRequest{
 	pub MapfixID:i64,
-	pub StatusMessage:String,
+	pub ErrorMessage:String,
 }
 
 #[allow(nonstandard_style)]
@@ -285,7 +285,7 @@ pub struct ActionMapfixUploadedRequest{
 #[derive(Clone,Debug)]
 pub struct ActionMapfixAcceptedRequest{
 	pub MapfixID:i64,
-	pub StatusMessage:String,
+	pub ErrorMessage:String,
 }
 
 #[derive(Clone,Copy,Debug,serde::Deserialize)]
diff --git a/validation/src/check_mapfix.rs b/validation/src/check_mapfix.rs
index b261f4e..a562ed0 100644
--- a/validation/src/check_mapfix.rs
+++ b/validation/src/check_mapfix.rs
@@ -35,7 +35,7 @@ impl crate::message_handler::MessageHandler{
 					self.api.action_mapfix_request_changes(
 						submissions_api::types::ActionMapfixRequestChangesRequest{
 							MapfixID:mapfix_id,
-							StatusMessage:report.to_string(),
+							ErrorMessage:report.to_string(),
 						}
 					).await.map_err(Error::ApiActionMapfixCheck)?;
 				}
@@ -46,7 +46,7 @@ impl crate::message_handler::MessageHandler{
 				self.api.action_mapfix_request_changes(
 					submissions_api::types::ActionMapfixRequestChangesRequest{
 						MapfixID:mapfix_id,
-						StatusMessage:e.to_string(),
+						ErrorMessage:e.to_string(),
 					}
 				).await.map_err(Error::ApiActionMapfixCheck)?;
 			},
diff --git a/validation/src/check_submission.rs b/validation/src/check_submission.rs
index 12f18e1..05d0f18 100644
--- a/validation/src/check_submission.rs
+++ b/validation/src/check_submission.rs
@@ -35,7 +35,7 @@ impl crate::message_handler::MessageHandler{
 					self.api.action_submission_request_changes(
 						submissions_api::types::ActionSubmissionRequestChangesRequest{
 							SubmissionID:submission_id,
-							StatusMessage:report.to_string(),
+							ErrorMessage:report.to_string(),
 						}
 					).await.map_err(Error::ApiActionSubmissionCheck)?;
 				}
@@ -46,7 +46,7 @@ impl crate::message_handler::MessageHandler{
 				self.api.action_submission_request_changes(
 					submissions_api::types::ActionSubmissionRequestChangesRequest{
 						SubmissionID:submission_id,
-						StatusMessage:e.to_string(),
+						ErrorMessage:e.to_string(),
 					}
 				).await.map_err(Error::ApiActionSubmissionCheck)?;
 			},
diff --git a/validation/src/create_mapfix.rs b/validation/src/create_mapfix.rs
index 982fd91..e735af6 100644
--- a/validation/src/create_mapfix.rs
+++ b/validation/src/create_mapfix.rs
@@ -43,7 +43,7 @@ impl crate::message_handler::MessageHandler{
 		if let Err(e)=create_result{
 			self.api.action_operation_failed(submissions_api::types::ActionOperationFailedRequest{
 				OperationID:operation_id,
-				StatusMessage:format!("{e}"),
+				StatusMessage:e.to_string(),
 			}).await?;
 		}
 
diff --git a/validation/src/create_submission.rs b/validation/src/create_submission.rs
index 4949366..370e80d 100644
--- a/validation/src/create_submission.rs
+++ b/validation/src/create_submission.rs
@@ -40,7 +40,7 @@ impl crate::message_handler::MessageHandler{
 		if let Err(e)=create_result{
 			self.api.action_operation_failed(submissions_api::types::ActionOperationFailedRequest{
 				OperationID:operation_id,
-				StatusMessage:format!("{e}"),
+				StatusMessage:e.to_string(),
 			}).await?;
 		}
 
diff --git a/validation/src/validate_mapfix.rs b/validation/src/validate_mapfix.rs
index c1607f6..56f29bf 100644
--- a/validation/src/validate_mapfix.rs
+++ b/validation/src/validate_mapfix.rs
@@ -29,7 +29,7 @@ impl crate::message_handler::MessageHandler{
 				// update the mapfix model status to accepted
 				self.api.action_mapfix_accepted(submissions_api::types::ActionMapfixAcceptedRequest{
 					MapfixID:mapfix_id,
-					StatusMessage:format!("{e}"),
+					ErrorMessage:e.to_string(),
 				}).await.map_err(Error::ApiActionMapfixValidate)?;
 			},
 		}
diff --git a/validation/src/validate_submission.rs b/validation/src/validate_submission.rs
index 5859bd6..c60a88b 100644
--- a/validation/src/validate_submission.rs
+++ b/validation/src/validate_submission.rs
@@ -29,7 +29,7 @@ impl crate::message_handler::MessageHandler{
 				// update the submission model status to accepted
 				self.api.action_submission_accepted(submissions_api::types::ActionSubmissionAcceptedRequest{
 					SubmissionID:submission_id,
-					StatusMessage:format!("{e}"),
+					ErrorMessage:e.to_string(),
 				}).await.map_err(Error::ApiActionSubmissionValidate)?;
 			},
 		}
diff --git a/web/src/app/mapfixes/[mapfixId]/_comments.tsx b/web/src/app/mapfixes/[mapfixId]/_comments.tsx
index ca42988..80f1046 100644
--- a/web/src/app/mapfixes/[mapfixId]/_comments.tsx
+++ b/web/src/app/mapfixes/[mapfixId]/_comments.tsx
@@ -12,7 +12,6 @@ interface CreatorAndReviewStatus {
     asset_id: MapfixInfo["AssetID"],
     creator: MapfixInfo["DisplayName"],
     review: MapfixInfo["StatusID"],
-    status_message: MapfixInfo["StatusMessage"],
     submitter: MapfixInfo["Submitter"],
     target_asset_id: MapfixInfo["TargetAssetID"],
     comments: Comment[],
diff --git a/web/src/app/mapfixes/[mapfixId]/page.tsx b/web/src/app/mapfixes/[mapfixId]/page.tsx
index 5316490..1cc7d60 100644
--- a/web/src/app/mapfixes/[mapfixId]/page.tsx
+++ b/web/src/app/mapfixes/[mapfixId]/page.tsx
@@ -54,7 +54,6 @@ function TitleAndComments(stats: CreatorAndReviewStatus) {
             <p className="submitter">Submitter {stats.submitter}</p>
             <p className="asset-id">Model Asset ID {stats.asset_id}</p>
             <p className="target-asset-id">Target Asset ID {stats.target_asset_id}</p>
-            <p className="status-message">Validation Error: {stats.status_message}</p>
             <span className="spacer"></span>
             <Comments comments_data={stats}/>
         </main>
@@ -86,7 +85,7 @@ export default function MapfixInfoPage() {
             <main className="map-page-main">
                 <section className="review-section">
 						<RatingArea mapfixId={dynamicId.mapfixId} mapfixStatus={mapfix.StatusID} mapfixSubmitter={mapfix.Submitter} mapfixAssetId={mapfix.AssetID} mapfixTargetAssetId={mapfix.TargetAssetID} />
-                    <TitleAndComments name={mapfix.DisplayName} creator={mapfix.Creator} review={mapfix.StatusID} status_message={mapfix.StatusMessage} asset_id={mapfix.AssetID} submitter={mapfix.Submitter} target_asset_id={mapfix.TargetAssetID} comments={[]}/>
+                    <TitleAndComments name={mapfix.DisplayName} creator={mapfix.Creator} review={mapfix.StatusID} asset_id={mapfix.AssetID} submitter={mapfix.Submitter} target_asset_id={mapfix.TargetAssetID} comments={[]}/>
                 </section>
             </main>
         </Webpage>
diff --git a/web/src/app/submissions/[submissionId]/_comments.tsx b/web/src/app/submissions/[submissionId]/_comments.tsx
index ddb61db..ce82c92 100644
--- a/web/src/app/submissions/[submissionId]/_comments.tsx
+++ b/web/src/app/submissions/[submissionId]/_comments.tsx
@@ -12,7 +12,6 @@ interface CreatorAndReviewStatus {
     asset_id: SubmissionInfo["AssetID"],
     creator: SubmissionInfo["DisplayName"],
     review: SubmissionInfo["StatusID"],
-    status_message: SubmissionInfo["StatusMessage"],
     submitter: SubmissionInfo["Submitter"],
     uploaded_asset_id: SubmissionInfo["UploadedAssetID"],
     comments: Comment[],
diff --git a/web/src/app/submissions/[submissionId]/page.tsx b/web/src/app/submissions/[submissionId]/page.tsx
index 81502de..62b4e30 100644
--- a/web/src/app/submissions/[submissionId]/page.tsx
+++ b/web/src/app/submissions/[submissionId]/page.tsx
@@ -46,7 +46,6 @@ function TitleAndComments(stats: CreatorAndReviewStatus) {
             <p className="submitter">Submitter {stats.submitter}</p>
             <p className="asset-id">Model Asset ID {stats.asset_id}</p>
             <p className="uploaded-asset-id">Uploaded Asset ID {stats.uploaded_asset_id}</p>
-            <p className="status-message">Validation Error: {stats.status_message}</p>
             <span className="spacer"></span>
             <Comments comments_data={stats}/>
         </main>
@@ -78,7 +77,7 @@ export default function SubmissionInfoPage() {
             <main className="map-page-main">
                 <section className="review-section">
 					<RatingArea assetId={submission.AssetID} submissionId={dynamicId.submissionId} submissionStatus={submission.StatusID} submissionSubmitter={submission.Submitter}/>
-                    <TitleAndComments name={submission.DisplayName} creator={submission.Creator} review={submission.StatusID} status_message={submission.StatusMessage} asset_id={submission.AssetID} submitter={submission.Submitter} uploaded_asset_id={submission.UploadedAssetID} comments={[]}/>
+                    <TitleAndComments name={submission.DisplayName} creator={submission.Creator} review={submission.StatusID} asset_id={submission.AssetID} submitter={submission.Submitter} uploaded_asset_id={submission.UploadedAssetID} comments={[]}/>
                 </section>
             </main>
         </Webpage>
diff --git a/web/src/app/ts/Mapfix.ts b/web/src/app/ts/Mapfix.ts
index 0a2c282..93de092 100644
--- a/web/src/app/ts/Mapfix.ts
+++ b/web/src/app/ts/Mapfix.ts
@@ -25,8 +25,7 @@ interface MapfixInfo {
     readonly ValidatedAssetVersion:  number,
     readonly Completed:     boolean,
     readonly TargetAssetID: number,
-    readonly StatusID:      MapfixStatus
-    readonly StatusMessage: string,
+    readonly StatusID:      MapfixStatus,
 }
 
 interface MapfixList {
diff --git a/web/src/app/ts/Submission.ts b/web/src/app/ts/Submission.ts
index 6d24051..4904726 100644
--- a/web/src/app/ts/Submission.ts
+++ b/web/src/app/ts/Submission.ts
@@ -25,8 +25,7 @@ interface SubmissionInfo {
     readonly ValidatedAssetVersion:  number,
     readonly Completed:     boolean,
     readonly UploadedAssetID: number,
-    readonly StatusID:      SubmissionStatus
-    readonly StatusMessage: string,
+    readonly StatusID:      SubmissionStatus,
 }
 
 interface SubmissionList {