diff --git a/src/server/pps/persist/server/rethink_api_server.go b/src/server/pps/persist/server/rethink_api_server.go
index <HASH>..<HASH> 100644
--- a/src/server/pps/persist/server/rethink_api_server.go
+++ b/src/server/pps/persist/server/rethink_api_server.go
@@ -363,7 +363,8 @@ func (a *rethinkAPIServer) UpdatePipelineInfo(ctx context.Context, request *pers
 	if request.CreatedAt != nil {
 		return nil, ErrTimestampSet
 	}
-	if err := a.updateMessage(pipelineInfosTable, request); err != nil {
+	doc := gorethink.Expr(request).Without("CreatedAt")
+	if _, err := a.getTerm(pipelineInfosTable).Insert(doc, gorethink.InsertOpts{Conflict: "update"}).RunWrite(a.session); err != nil {
 		return nil, err
 	}
 	return google_protobuf.EmptyInstance, nil
UpdatePipeline no longer clears CreatedAt field.