Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more

Reply
PrachiJain_2025
Frequent Visitor

Cloning and Publishing Eventstream via Fabric API — Response 202 but Blank Eventstream

Hi all,

I'm working on cloning an existing Fabric Eventstream using the Fabric REST APIs. The goal is to automate the process of duplicating a working Eventstream and publishing it with a new display name.

What I did:

  • Used the /getDefinition API to extract the full Eventstream structure.

  • Decoded all payload parts (such as eventstream.json, platform.json, etc.).

  • Modified the displayName in platform.json to differentiate the cloned stream.

  • Re-encoded the parts to Base64 and used the /items POST API to create a new Eventstream.

What happens:

  • The initial response is 202 Accepted, and I receive a Location header.

  • I poll the Location URL until I get a 200 OK response.

  • The final response shows "status": "Succeed".

The issue: Despite a successful status, the cloned Eventstream appears blank in the Fabric UI — no sources, streams, or destinations are shown.

Questions:

  1. Are there additional validation checks or metadata required for a proper Eventstream publish?

  2. Do we need to explicitly include or transform certain properties beyond what's returned by /getDefinition?

  3. Are there known limitations or issues with using the Eventstream API for cloning and provisioning?

I’d appreciate any help or insights from others who have successfully implemented this or faced a similar issue. I can provide sanitized code snippets if needed.

Thanks in advance.

1 ACCEPTED SOLUTION
v-aatheeque
Community Support
Community Support

Hi @PrachiJain_2025 ,

  • Replace any original itemId, workspaceId, or dataConnectionId with those relevant to the new workspace/resources.
  • The Fabric UI might not immediately reflect the cloned Eventstream due to caching or a delay in provisioning the underlying resources (e.g., Event Hubs namespace).
  • The Eventstream REST API might not fully support cloning complex configurations (e.g., transformations or enhanced capabilities) in a single POST operation, requiring additional steps.
  • Eventstreams rely on connections to sources and destinations (e.g., Azure Event Hubs, KQL Databases). If the cloned definition retains original workspace-specific IDs or connection references that don’t exist in the new context, Fabric might silently discard those components.
  • After calling /getDefinition, ensure the response includes all expected parts: eventstream.json (defining sources, destinations, operators, streams) and platform.json (metadata like displayName).
  • Event streams often link to external resources via IDs (e.g., dataConnectionId for Event Hubs or itemId for a Lakehouse). If these IDs are workspace-specific, reusing them in a new Eventstream could cause Fabric to ignore those components.

Reference : https://learn.microsoft.com/en-us/fabric/real-time-intelligence/event-streams/eventstream-rest-api

Hope this helps !

Did I answer your question? Then please mark my post as the solution.

View solution in original post

5 REPLIES 5
PrachiJain_2025
Frequent Visitor

Thank you, will ask if any question further

PrachiJain_2025
Frequent Visitor

Thank you, will ask if any question further

v-aatheeque
Community Support
Community Support

Hi @PrachiJain_2025 ,

  • Replace any original itemId, workspaceId, or dataConnectionId with those relevant to the new workspace/resources.
  • The Fabric UI might not immediately reflect the cloned Eventstream due to caching or a delay in provisioning the underlying resources (e.g., Event Hubs namespace).
  • The Eventstream REST API might not fully support cloning complex configurations (e.g., transformations or enhanced capabilities) in a single POST operation, requiring additional steps.
  • Eventstreams rely on connections to sources and destinations (e.g., Azure Event Hubs, KQL Databases). If the cloned definition retains original workspace-specific IDs or connection references that don’t exist in the new context, Fabric might silently discard those components.
  • After calling /getDefinition, ensure the response includes all expected parts: eventstream.json (defining sources, destinations, operators, streams) and platform.json (metadata like displayName).
  • Event streams often link to external resources via IDs (e.g., dataConnectionId for Event Hubs or itemId for a Lakehouse). If these IDs are workspace-specific, reusing them in a new Eventstream could cause Fabric to ignore those components.

Reference : https://learn.microsoft.com/en-us/fabric/real-time-intelligence/event-streams/eventstream-rest-api

Hope this helps !

Did I answer your question? Then please mark my post as the solution.

Hi @PrachiJain_2025 ,

If you find this post helpful, please mark it as an "Accept as Solution" and consider giving a KUDOS. Feel free to reach out if you need further assistance.
Thanks and Regards

Hi @PrachiJain_2025 ,

If you find this post helpful, please mark it as an "Accept as Solution" and consider giving a KUDOS. Feel free to reach out if you need further assistance.
Thanks and Regards

Helpful resources

Announcements
MarchFBCvideo - carousel

Fabric Monthly Update - March 2025

Check out the March 2025 Fabric update to learn about new features.

Notebook Gallery Carousel1

NEW! Community Notebooks Gallery

Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.

April2025 Carousel

Fabric Community Update - April 2025

Find out what's new and trending in the Fabric community.

"); $(".slidesjs-pagination" ).prependTo(".pagination_sec"); $(".slidesjs-pagination" ).append("
"); $(".slidesjs-play.slidesjs-navigation").appendTo(".playpause_sec"); $(".slidesjs-stop.slidesjs-navigation").appendTo(".playpause_sec"); $(".slidesjs-pagination" ).append(""); $(".slidesjs-pagination" ).append(""); } catch(e){ } /* End: This code is added by iTalent as part of iTrack COMPL-455 */ $(".slidesjs-previous.slidesjs-navigation").attr('tabindex', '0'); $(".slidesjs-next.slidesjs-navigation").attr('tabindex', '0'); /* start: This code is added by iTalent as part of iTrack 1859082 */ $('.slidesjs-play.slidesjs-navigation').attr('id','playtitle'); $('.slidesjs-stop.slidesjs-navigation').attr('id','stoptitle'); $('.slidesjs-play.slidesjs-navigation').attr('role','tab'); $('.slidesjs-stop.slidesjs-navigation').attr('role','tab'); $('.slidesjs-play.slidesjs-navigation').attr('aria-describedby','tip1'); $('.slidesjs-stop.slidesjs-navigation').attr('aria-describedby','tip2'); /* End: This code is added by iTalent as part of iTrack 1859082 */ }); $(document).ready(function() { if($("#slides .item").length < 2 ) { /* Fixing Single Slide click issue (commented following code)*/ // $(".item").css("left","0px"); $(".item.slidesjs-slide").attr('style', 'left:0px !important'); $(".slidesjs-stop.slidesjs-navigation").trigger('click'); $(".slidesjs-previous").css("display", "none"); $(".slidesjs-next").css("display", "none"); } var items_length = $(".item.slidesjs-slide").length; $(".slidesjs-pagination-item > button").attr("aria-setsize",items_length); $(".slidesjs-next, .slidesjs-pagination-item button").attr("tabindex","-1"); $(".slidesjs-pagination-item button").attr("role", "tab"); $(".slidesjs-previous").attr("tabindex","-1"); $(".slidesjs-next").attr("aria-hidden","true"); $(".slidesjs-previous").attr("aria-hidden","true"); $(".slidesjs-next").attr("aria-label","Next"); $(".slidesjs-previous").attr("aria-label","Previous"); //$(".slidesjs-stop.slidesjs-navigation").attr("role","button"); //$(".slidesjs-play.slidesjs-navigation").attr("role","button"); $(".slidesjs-pagination").attr("role","tablist").attr("aria-busy","true"); $("li.slidesjs-pagination-item").attr("role","list"); $(".item.slidesjs-slide").attr("tabindex","-1"); $(".item.slidesjs-slide").attr("aria-label","item"); /*$(".slidesjs-stop.slidesjs-navigation").on('click', function() { var itemNumber = parseInt($('.slidesjs-pagination-item > a.active').attr('data-slidesjs-item')); $($('.item.slidesjs-slide')[itemNumber]).find('.c-call-to-action').attr('tabindex', '0'); });*/ $(".slidesjs-stop.slidesjs-navigation, .slidesjs-pagination-item > button").on('click keydown', function() { $.each($('.item.slidesjs-slide'),function(i,el){ $(el).find('.c-call-to-action').attr('tabindex', '-1'); }); var itemNumber = parseInt($('.slidesjs-pagination-item > button.active').attr('data-slidesjs-item')); $($('.item.slidesjs-slide')[itemNumber]).find('.c-call-to-action').attr('tabindex', '0'); }); $(".slidesjs-play.slidesjs-navigation").on('click', function() { $.each($('.item.slidesjs-slide'),function(i,el){ $(el).find('.c-call-to-action').attr('tabindex', '-1'); }); }); $(".slidesjs-pagination-item button").keyup(function(e){ var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); $(".slidesjs-stop.slidesjs-navigation").trigger('click').blur(); $("button.active").focus(); } }); $(".slidesjs-play").on("click",function (event) { if (event.handleObj.type === "click") { $(".slidesjs-stop").focus(); } else if(event.handleObj.type === "keydown"){ if (event.which === 13 && $(event.target).hasClass("slidesjs-play")) { $(".slidesjs-stop").focus(); } } }); $(".slidesjs-stop").on("click",function (event) { if (event.handleObj.type === "click") { $(".slidesjs-play").focus(); } else if(event.handleObj.type === "keydown"){ if (event.which === 13 && $(event.target).hasClass("slidesjs-stop")) { $(".slidesjs-play").focus(); } } }); $(".slidesjs-pagination-item").keydown(function(e){ switch (e.which){ case 37: //left arrow key $(".slidesjs-previous.slidesjs-navigation").trigger('click'); e.preventDefault(); break; case 39: //right arrow key $(".slidesjs-next.slidesjs-navigation").trigger('click'); e.preventDefault(); break; default: return; } $(".slidesjs-pagination-item button.active").focus(); }); }); // Start This code is added by iTalent as part of iTrack 1859082 $(document).ready(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); $("#tip2").attr("aria-hidden","true").addClass("hidden"); $(".slidesjs-stop.slidesjs-navigation, .slidesjs-play.slidesjs-navigation").attr('title', ''); $("a#playtitle").focus(function(){ $("#tip1").attr("aria-hidden","false").removeClass("hidden"); }); $("a#playtitle").mouseover(function(){ $("#tip1").attr("aria-hidden","false").removeClass("hidden"); }); $("a#playtitle").blur(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); }); $("a#playtitle").mouseleave(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); }); $("a#play").keydown(function(ev){ if (ev.which ==27) { $("#tip1").attr("aria-hidden","true").addClass("hidden"); ev.preventDefault(); return false; } }); $("a#stoptitle").focus(function(){ $("#tip2").attr("aria-hidden","false").removeClass("hidden"); }); $("a#stoptitle").mouseover(function(){ $("#tip2").attr("aria-hidden","false").removeClass("hidden"); }); $("a#stoptitle").blur(function(){ $("#tip2").attr("aria-hidden","true").addClass("hidden"); }); $("a#stoptitle").mouseleave(function(){ $("#tip2").attr("aria-hidden","true").addClass("hidden"); }); $("a#stoptitle").keydown(function(ev){ if (ev.which ==27) { $("#tip2").attr("aria-hidden","true").addClass("hidden"); ev.preventDefault(); return false; } }); }); // End This code is added by iTalent as part of iTrack 1859082
Top Solution Authors