diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchEntityManager.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchEntityManager.java index 96c25c8c41a..07a4b8ddf7e 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchEntityManager.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchEntityManager.java @@ -361,6 +361,7 @@ public class ElasticSearchEntityManager implements EntityManagementClient { .id(docId) .refresh(Refresh.True) .scriptedUpsert(true) + .upsert(params) .script( s -> s.inline( @@ -375,7 +376,20 @@ public class ElasticSearchEntityManager implements EntityManagementClient { "Successfully updated entity in ElasticSearch for index: {}, docId: {}", indexName, docId); - } catch (IOException | ElasticsearchException e) { + } catch (ElasticsearchException e) { + if (e.status() == 404) { + LOG.warn( + "Document not found during update for index: {}, docId: {}. The document may not have been indexed yet.", + indexName, + docId); + } else { + LOG.error( + "Failed to update entity in ElasticSearch for index: {}, docId: {}", + indexName, + docId, + e); + } + } catch (IOException e) { LOG.error( "Failed to update entity in ElasticSearch for index: {}, docId: {}", indexName, docId, e); } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchEntityManager.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchEntityManager.java index 904fbe0a823..7fb5202d273 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchEntityManager.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchEntityManager.java @@ -369,6 +369,7 @@ public class OpenSearchEntityManager implements EntityManagementClient { .id(docId) .refresh(Refresh.True) .scriptedUpsert(true) + .upsert(params) .script( s -> s.inline( @@ -381,7 +382,17 @@ public class OpenSearchEntityManager implements EntityManagementClient { LOG.info( "Successfully updated entity in OpenSearch for index: {}, docId: {}", indexName, docId); - } catch (IOException | OpenSearchException e) { + } catch (OpenSearchException e) { + if (e.status() == 404) { + LOG.warn( + "Document not found during update for index: {}, docId: {}. The document may not have been indexed yet.", + indexName, + docId); + } else { + LOG.error( + "Failed to update entity in OpenSearch for index: {}, docId: {}", indexName, docId, e); + } + } catch (IOException e) { LOG.error( "Failed to update entity in OpenSearch for index: {}, docId: {}", indexName, docId, e); }