BOM synchronization REST API times out during sustainability

We’re experiencing consistent 504 gateway timeouts when calling ENOVIA REST APIs for BOM synchronization with sustainability data attached. Our multi-site deployment propagates BOMs across 4 regional instances, and the REST calls work fine for standard BOMs but fail when sustainability metrics (carbon footprint, recyclability scores) are included in the payload.

The timeout occurs around 60 seconds, and we’ve noticed that sustainability payloads are significantly larger. We’re currently making synchronous calls without pagination. Has anyone dealt with API timeout configuration for large sustainability datasets? Should we be looking at batch processing strategies or async handling for this type of multi-site orchestration?

Current approach:


POST /enovia/resources/v1/modeler/bom/sync
Payload: Full BOM tree + sustainability metrics (avg 2.5MB)
Timeout: 60s (default gateway setting)
Error: 504 Gateway Timeout after 58-62 seconds

Your 2.5MB payload size is definitely the culprit here. Let me share what worked for us with similar multi-site BOM sync challenges.

First, regarding API timeout configuration for sustainability payloads - you need a multi-layered approach. Increase your gateway timeout to 180 seconds as a safety net, but don’t rely on this alone:


# Gateway configuration
proxy_read_timeout 180s;
proxy_send_timeout 180s;

However, the real solution involves proper batch processing and pagination strategies. Implement a chunking mechanism that splits your BOM tree into manageable units. We use a hybrid approach:

  1. Immediate sync for critical data: Core BOM structure (parent-child relationships, quantities) goes through synchronous REST calls with 100-item pagination
  2. Deferred sync for sustainability metrics: Carbon footprint, material composition, recyclability scores are queued for asynchronous processing
  3. Smart batching: Group items by similarity (same material families) to optimize sustainability calculation reuse

For asynchronous sustainability data handling, we built a dedicated service that processes sustainability enrichment in the background. This service polls a work queue and updates BOM items with sustainability data after the initial structure sync completes. The pattern looks like:


// Pseudocode - Async sustainability processing:
1. Sync core BOM structure via REST (returns immediately)
2. Queue sustainability payload with correlation ID
3. Background worker picks up queued items in batches
4. Process sustainability calculations (parallel where possible)
5. Update BOM items via dedicated sustainability endpoint
6. Emit completion events for downstream systems

For multi-site request orchestration, implement a coordinator pattern. Each regional site should have:

  • Local cache for sustainability reference data (material databases, impact factors)
  • Retry logic with exponential backoff
  • Circuit breakers to prevent cascade failures
  • Health checks before initiating cross-site syncs

We also discovered that sustainability data compression helps significantly. Before transmission, compress your JSON payloads - we achieved 4x reduction in payload size using gzip, which brought our average payload from 2.4MB to 600KB.

Finally, monitor your workflow with proper instrumentation. Track these metrics:

  • Time spent in gateway vs. application processing
  • Payload size distribution across different BOM types
  • Success rate by batch size
  • Regional site processing lag

This approach reduced our timeout failures from 45% to less than 2%, and average sync time dropped from 75 seconds to 18 seconds. The async pattern also improved user experience since they get immediate feedback on BOM structure changes while sustainability data populates in the background.


This draft is based on general ENOVIA knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.

I’ve seen similar issues with large payloads in R2020x. The default REST API gateway timeout is indeed 60 seconds, but sustainability data significantly increases processing time. You might want to check your application server timeout settings as well - sometimes the gateway timeout is fine but the backend processing exceeds limits. Have you monitored the actual processing time on the ENOVIA server side to see where the bottleneck is?

We had this exact problem last year. The issue isn’t just timeout configuration - it’s that you’re trying to push too much data in a single synchronous call. For sustainability data with multi-site propagation, you really need pagination. Break your BOM tree into chunks (we use 50 items per batch) and process them sequentially. This keeps each REST call under the timeout threshold and makes error recovery much easier.

Adding to the pagination suggestion - you should also consider the structure of your sustainability data. Are you including full lifecycle assessment details in every sync call? We optimized our payload by separating core BOM structure from extended sustainability attributes. The BOM sync happens first with minimal data, then a separate async process handles sustainability metrics enrichment. This reduced our sync times by 70% and eliminated timeout issues completely. The async pattern also handles multi-site propagation more gracefully since each site can process at its own pace.

Tested this on ENOVIA R2023x with 2.5MB BOM payloads — chunking the BOM tree with 180s gateway timeout eliminated sync timeouts across all three manufacturing sites.

Check if your gateway has request buffering enabled. With large sustainability payloads, buffering can add significant overhead. Also, R2020x has known performance issues with nested JSON structures in REST APIs - sustainability data often includes deeply nested material compositions and impact assessments. Consider flattening your JSON structure or using a more compact format. We switched to a reference-based approach where sustainability metrics are stored separately and linked by ID, which reduced payload size by 60%.

For multi-site orchestration, have you looked at the ENOVIA event-driven architecture? Instead of synchronous REST calls, you could publish BOM change events to a message queue and let each regional instance consume them asynchronously. This completely eliminates timeout concerns and provides better resilience. We implemented this pattern using Apache Kafka for BOM propagation across 6 sites, and sustainability data processing happens in parallel without blocking the main sync workflow.