SubPointSolutions / spmeta2

SharePoint artifact provision for .NET platform. Supports SharePoint Online, SharePoint 2019, 2016 and 2013 via CSOM/SSOM.
http://subpointsolutions.com/spmeta2
133 stars 56 forks source link

Issue with provisioning Publishing PageLayouts #1128

Closed DawsyB closed 5 years ago

DawsyB commented 5 years ago

Hello,

Unable to provision publishing page layout. Keep getting the error "The file _catalogs/masterpage/*.aspx has been modified by i:0#.f|membership|*@.onmicrosoft.com on 21 Feb 2019 00:15:21 -0800." or "Save Conflict. Your changes conflict with those made concurrently by another user. If you want your changes to be applied, click Back in your Web browser, refresh the page, and resubmit your changes.". It seems the page layout is deployed under master page gallery but it errors out while checking the file in. At times, manually check-in the page layout file from the UI and re-deploying the solution works but not always. So can't really find a pattern

CSOM -16.1.8523.1200 SPMeta2FileVersion - 1.2.1840.0152

Model:

    web.AddHostList(BuiltInListDefinitions.Catalogs.MasterPage, list =>
                {
                    //Deploys Page Layouts

                    //list.AddPublishingPageLayout(PageLayouts.HomePageLayout);                 
                    //list.AddPublishingPageLayout(PageLayouts.ServicesLayout);                 
                    //list.AddPublishingPageLayout(PageLayouts.TeamsLayout);
                    list.AddPublishingPageLayouts(new List<PublishingPageLayoutDefinition>() {
                        PageLayouts.HomePageLayout,
                        PageLayouts.ServicesLayout,
                        PageLayouts.TeamsLayout
                    });

                    //Deploy Display Templates
                    list.AddFolder(BuiltInFolderDefinitions.DisplayTemplates, displayTemplatesFolder =>
                    {
                        displayTemplatesFolder.AddFolder(BuiltInFolderDefinitions.Search, searchFolder =>
                        {
                            searchFolder.AddFilterDisplayTemplate(DisplayTemplates.FaqResultsDisplayTemplate);
                        });
                    });
                });

Definition:

public static PublishingPageLayoutDefinition HomePageLayout = new PublishingPageLayoutDefinition()
        {
            Title = "Property & Fleet Home layout",
            FileName = "PropertyAndFleet.aspx",
            Content = File.ReadAllText(@"Files\PageLayouts\PropertyAndFleet.aspx"),
            AssociatedContentTypeId = ContentTypes.PropertyAndFleetPageContentType.GetContentTypeId(),
            NeedOverride = true
        };

        public static PublishingPageLayoutDefinition ServicesLayout = new PublishingPageLayoutDefinition()
        {
            Title = "Property & Fleet Services layout",
            FileName = "PropertyAndFleetServices.aspx",
            Content = File.ReadAllText(@"Files\PageLayouts\PropertyAndFleetServices.aspx"),
            AssociatedContentTypeId = ContentTypes.PropertyAndFleetPageContentType.GetContentTypeId(),
            NeedOverride = true
        };

        public static PublishingPageLayoutDefinition TeamsLayout = new PublishingPageLayoutDefinition()
        {
            Title = "Property & Fleet Teams layout",
            FileName = "PropertyAndFleetTeam.aspx",
            Content = File.ReadAllText(@"Files\PageLayouts\PropertyAndFleetTeam.aspx"),
            AssociatedContentTypeId = ContentTypes.PropertyAndFleetPageContentType.GetContentTypeId(),
            NeedOverride = true
        };

PropertyAndFleetServices.aspx

<%@ Page language="C#"   Inherits="Microsoft.SharePoint.Publishing.PublishingLayoutPage,Microsoft.SharePoint.Publishing,Version=16.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePointWebControls" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="PublishingWebControls" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="PublishingNavigation" Namespace="Microsoft.SharePoint.Publishing.Navigation" Assembly="Microsoft.SharePoint.Publishing, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<asp:Content ContentPlaceholderID="PlaceHolderAdditionalPageHead" runat="server">
    <SharePointWebControls:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/~language/Themable/Core Styles/pagelayouts15.css %>" runat="server"/>
    <PublishingWebControls:EditModePanel runat="server">
        <!-- Styles for edit mode only-->
        <SharePointWebControls:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/~language/Themable/Core Styles/editmode15.css %>"
            After="<% $SPUrl:~sitecollection/Style Library/~language/Themable/Core Styles/pagelayouts15.css %>" runat="server"/>
    </PublishingWebControls:EditModePanel>
    <SharePointWebControls:FieldValue id="PageStylesField" FieldName="HeaderStyleDefinitions" runat="server"/>
</asp:Content>
<asp:Content ContentPlaceholderID="PlaceHolderPageTitle" runat="server">
    <SharePointWebControls:FieldValue id="PageTitle" FieldName="Title" runat="server"/>
</asp:Content>
<asp:Content ContentPlaceholderID="PlaceHolderPageTitleInTitleArea" runat="server">
    <SharePointWebControls:FieldValue FieldName="Title" runat="server"/>
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderTitleBreadcrumb" runat="server"> <SharePointWebControls:ListSiteMapPath runat="server" SiteMapProviders="CurrentNavigationSwitchableProvider" RenderCurrentNodeAsLink="false" PathSeparator="" CssClass="s4-breadcrumb" NodeStyle-CssClass="s4-breadcrumbNode" CurrentNodeStyle-CssClass="s4-breadcrumbCurrentNode" RootNodeStyle-CssClass="s4-breadcrumbRootNode" NodeImageOffsetX=0 NodeImageOffsetY=289 NodeImageWidth=16 NodeImageHeight=16 NodeImageUrl="/_layouts/15/images/fgimg.png?rev=45" HideInteriorRootNodes="true" SkipLinkText="" /> </asp:Content>
<asp:Content ContentPlaceholderID="PlaceHolderMain" runat="server">
    <div class="article article-links">
        <PublishingWebControls:EditModePanel runat="server" CssClass="edit-mode-panel title-edit">
            <SharePointWebControls:TextField runat="server" FieldName="Title"/>
        </PublishingWebControls:EditModePanel>
        <div class="related-links">
            <PublishingWebControls:SummaryLinkFieldControl FieldName="SummaryLinks" runat="server"/>
        </div>
        <div class="article-header">
            <div class="date-line">
                <SharePointWebControls:DateTimeField FieldName="ArticleStartDate" runat="server"/>
            </div>
            <div class="by-line">
                <SharePointWebControls:TextField FieldName="ArticleByLine" runat="server"/>
            </div>
        </div>
        <div class="article-content">
            <PublishingWebControls:RichHtmlField FieldName="PublishingPageContent" HasInitialFocus="True" MinimumEditHeight="400px" runat="server"/>
        </div>
        <PublishingWebControls:EditModePanel runat="server" CssClass="edit-mode-panel roll-up">
            <PublishingWebControls:RichImageField FieldName="PublishingRollupImage" AllowHyperLinks="false" runat="server" />
            <asp:Label text="<%$Resources:cms,Article_rollup_image_text15%>" CssClass="ms-textSmall" runat="server" />
        </PublishingWebControls:EditModePanel>
    </div>
</asp:Content>

PropertyAndFleet.aspx


<%@ Page Language="C#" Inherits="Microsoft.SharePoint.Publishing.PublishingLayoutPage,Microsoft.SharePoint.Publishing,Version=16.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" meta:webpartpageexpansion="full" meta:progid="SharePoint.WebPartPage.Document" %>

<%@ Register TagPrefix="SharePointWebControls" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="PublishingWebControls" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="PublishingNavigation" Namespace="Microsoft.SharePoint.Publishing.Navigation" Assembly="Microsoft.SharePoint.Publishing, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@Register TagPrefix="PnFWP" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<asp:Content Contentplaceholderid="PlaceHolderAdditionalPageHead" runat="server">
    <SharePointWebControls:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/~language/Themable/Core Styles/pagelayouts15.css %>" runat="server"/>
    <PublishingWebControls:EditModePanel runat="server">
        <!-- Styles for edit mode only-->
        <SharePointWebControls:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/~language/Themable/Core Styles/editmode15.css %>"
            After="<% $SPUrl:~sitecollection/Style Library/~language/Themable/Core Styles/pagelayouts15.css %>" runat="server"/>
    </PublishingWebControls:EditModePanel>
    <style>
        #titleAreaBox, .content-container, .page-footer .row {
            width: 100%;
            max-width: 1400px;
            margin: auto;
        }

        #contentRow {
            max-width: 1400px;
            margin: auto;
        }

        #sideNavBox {
            margin-left: 40px;
            margin-top: 10px;
            width: 16.66%
        }

        .page-footer {
            position: absolute;
            left: 0;
            right: 0;
            margin-top: 120px;
        }

        .generic {
            min-height: 520px;
            min-height: calc(100vh - 415px);
        }

        @media screen and (max-width: 639px) {
            #sideNavBox #DeltaPlaceHolderLeftNavBar {
                display: block;
            }

            .page-footer .row {
                padding: 20px 0;
            }
            /*.footer-bottom-column {
                text-align: center;
            }*/
            #sideNavBox {
                margin: 0px;
                width: auto;
            }
        }

        @media (min-width: 1024px) {
            .primary-column {
                width: 60%;
            }

            .ms-core-listMenu-verticalBox li.static > .ms-core-listMenu-item {
                padding: 10px 20px;
            }
        }
    </style>
      <script type="text/javascript">
          var documentReady = function () {

              $.when(
                  $.getScript("/sites/intranet/Style Library/WP/js/PropertyAndFleetControls.js"),
                  $.Deferred(function (deferred) {
                      $(deferred.resolve);
                  })
              ).done(function () {
                 WP_WebParts_PnF_Common.initialise();
              });

              //hide recent node
              $(".ms-core-listMenu-item:contains('Recent')").parent().hide();

              //highlighting selected node
              try {

                  var liElements = $("div.ms-breadcrumb-top ul > li");
                  if (liElements != undefined && liElements.length > 0) {
                      liElements.removeClass("selected");
                      liElements.find("a").removeClass("ms-core-listMenu-selected");
                      $.each(liElements, function (index, value) {
                          var link = $($(value).find("a")[0]).attr('href');
                          if (link && link.trimLastSlash() != _spPageContextInfo.siteServerRelativeUrl && link != "/" && document.URL.indexOf(link) >= 0) {
                              $(value).addClass("selected");
                          }
                      });
                  }
              } catch (err) { }

              //hide collapse sub nodes
              try {
                  WP_WebParts_Common.hideCollapseMenu();
              } catch (err) { }
          };
          _spBodyOnLoadFunctionNames.push("documentReady");
                </script>

    <SharePointWebControls:FieldValue id="PageStylesField" FieldName="HeaderStyleDefinitions" runat="server"/>
</asp:Content>
<asp:Content Contentplaceholderid="PlaceHolderPageTitle" runat="server">
    <SharePointWebControls:FieldValue id="PageTitle" FieldName="Title" runat="server"/>
</asp:Content>
<asp:Content Contentplaceholderid="PlaceHolderPageTitleInTitleArea" runat="server">
    <SharePointWebControls:FieldValue FieldName="Title" runat="server"/>
</asp:Content>
<asp:Content Contentplaceholderid="PlaceHolderTitleBreadcrumb" runat="server"> 
    <SharePointWebControls:ListSiteMapPath runat="server" SiteMapProviders="CurrentNavigationSwitchableProvider" RenderCurrentNodeAsLink="false" PathSeparator="" CssClass="s4-breadcrumb" NodeStyle-CssClass="s4-breadcrumbNode" CurrentNodeStyle-CssClass="s4-breadcrumbCurrentNode" RootNodeStyle-CssClass="s4-breadcrumbRootNode" NodeImageOffsetX=0 NodeImageOffsetY=289 NodeImageWidth=16 NodeImageHeight=16 NodeImageUrl="/_layouts/15/images/fgimg.png?rev=44" HideInteriorRootNodes="true" SkipLinkText=""/></asp:Content>
<asp:Content Contentplaceholderid="PlaceHolderMain" runat="server">
    <div class="generic content-container pnfcontainer">
            <%--Breadcrumb--%><div id="customBreadcrumbBP" class="breadcrumb" style="display: none;" data-bind="visible: true">
                <ul data-bind="foreach: { data: BreadcrumbBP }">
                    <li class="item">
                        <a class="item-link" data-bind="attr: { href: url }, css: { disableClick: url() == '#' }">
                            <div data-bind="text: name"></div>
                        </a>
                    </li>
                </ul>
            </div>                      

        <div class="primary-column column">
            <%-- Title --%><h1 id="pnf_pagetitle">
            <SharePointWebControls:TextField runat="server" FieldName="Title"/></h1>
            <%--Page Content--%><div id="publishingBPImage">
                <PublishingWebControls:RichImageField FieldName="PublishingPageImage" runat="server"/>
            </div>
            <div id="publishingBPContent">
                <PublishingWebControls:RichHtmlField FieldName="PublishingPageContent" HasInitialFocus="True" AllowFonts="False" MinimumEditHeight="400px" runat="server"/>
            </div>

            <div class="webpartZoneContainer">
                <WebPartPages:WebPartZone runat="server" Title="LeftTopZone" ID="LeftTopZone"><ZoneTemplate></ZoneTemplate></WebPartPages:WebPartZone>
                <div id="pnfhowcanwehelpwp">
                    <WebPartPages:WebPartZone runat="server" Title="HowHelpZone" ID="HowHelpZone"><ZoneTemplate>
                    <PublishingWebControls:SummaryLinkWebPart runat="server" SummaryLinkStore="&lt;div title=&#39;_schemaversion&#39; id=&#39;_3&#39;&gt;
  &lt;div title=&#39;_links&#39;&gt;
    &lt;div title=&#39;_link&#39;&gt;
      &lt;span title=&#39;_title&#39;&gt;Group1&lt;/span&gt;
      &lt;span title=&#39;_order&#39;&gt;1&lt;/span&gt;
      &lt;span title=&#39;_begincolumn&#39;&gt;True&lt;/span&gt;
      &lt;span title=&#39;_isgroupheader&#39;&gt;True&lt;/span&gt;
      &lt;span title=&#39;_groupstyle&#39;&gt;Whitespace&lt;/span&gt;
    &lt;/div&gt;
    &lt;div title=&#39;_link&#39;&gt;
      &lt;span title=&#39;_title&#39;&gt;Facilities Management&lt;/span&gt;
      &lt;span title=&#39;_order&#39;&gt;2&lt;/span&gt;
      &lt;span title=&#39;_begincolumn&#39;&gt;False&lt;/span&gt;
      &lt;span title=&#39;_group&#39;&gt;Group1&lt;/span&gt;
      &lt;span title=&#39;_linkurl&#39;&gt;
        &lt;a href=&#39;https://www.google.com.au&#39;&gt;https://www.google.com.au&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_imageurl&#39;&gt;
        &lt;a href=&#39;https://www.care.org.au/wp-content/uploads/2014/11/icon-tent-100.jpg&#39;&gt;https://www.care.org.au/wp-content/uploads/2014/11/icon-tent-100.jpg&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_style&#39;&gt;Default&lt;/span&gt;
    &lt;/div&gt;
    &lt;div title=&#39;_link&#39;&gt;
      &lt;span title=&#39;_title&#39;&gt;Security&lt;/span&gt;
      &lt;span title=&#39;_order&#39;&gt;3&lt;/span&gt;
      &lt;span title=&#39;_begincolumn&#39;&gt;False&lt;/span&gt;
      &lt;span title=&#39;_group&#39;&gt;Group1&lt;/span&gt;
      &lt;span title=&#39;_linkurl&#39;&gt;
            &lt;a href=&#39;https://www.google.com.au&#39;&gt;https://www.google.com.au&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_imageurl&#39;&gt;
            &lt;a href=&#39;https://www.care.org.au/wp-content/uploads/2014/11/icon-tent-100.jpg&#39;&gt;https://www.care.org.au/wp-content/uploads/2014/11/icon-tent-100.jpg&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_style&#39;&gt;Default&lt;/span&gt;
    &lt;/div&gt;
    &lt;div title=&#39;_link&#39;&gt;
      &lt;span title=&#39;_title&#39;&gt;Group2&lt;/span&gt;
      &lt;span title=&#39;_order&#39;&gt;4&lt;/span&gt;
      &lt;span title=&#39;_begincolumn&#39;&gt;True&lt;/span&gt;
      &lt;span title=&#39;_isgroupheader&#39;&gt;True&lt;/span&gt;
      &lt;span title=&#39;_groupstyle&#39;&gt;Whitespace&lt;/span&gt;
    &lt;/div&gt;
    &lt;div title=&#39;_link&#39;&gt;
      &lt;span title=&#39;_title&#39;&gt;Locations&lt;/span&gt;
      &lt;span title=&#39;_order&#39;&gt;5&lt;/span&gt;
      &lt;span title=&#39;_begincolumn&#39;&gt;False&lt;/span&gt;
      &lt;span title=&#39;_group&#39;&gt;Group2&lt;/span&gt;
      &lt;span title=&#39;_linkurl&#39;&gt;
            &lt;a href=&#39;https://www.google.com.au&#39;&gt;https://www.google.com.au&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_imageurl&#39;&gt;
            &lt;a href=&#39;https://www.care.org.au/wp-content/uploads/2014/11/icon-tent-100.jpg&#39;&gt;https://www.care.org.au/wp-content/uploads/2014/11/icon-tent-100.jpg&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_style&#39;&gt;Default&lt;/span&gt;
    &lt;/div&gt;
    &lt;div title=&#39;_link&#39;&gt;
      &lt;span title=&#39;_title&#39;&gt;Fuel Cards&lt;/span&gt;
      &lt;span title=&#39;_order&#39;&gt;6&lt;/span&gt;
      &lt;span title=&#39;_begincolumn&#39;&gt;False&lt;/span&gt;
      &lt;span title=&#39;_group&#39;&gt;Group2&lt;/span&gt;
      &lt;span title=&#39;_linkurl&#39;&gt;
            &lt;a href=&#39;https://www.google.com.au&#39;&gt;https://www.google.com.au&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_imageurl&#39;&gt;
            &lt;a href=&#39;https://www.care.org.au/wp-content/uploads/2014/11/icon-tent-100.jpg&#39;&gt;https://www.care.org.au/wp-content/uploads/2014/11/icon-tent-100.jpg&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_style&#39;&gt;Default&lt;/span&gt;
    &lt;/div&gt;
    &lt;div title=&#39;_link&#39;&gt;
      &lt;span title=&#39;_title&#39;&gt;Group3&lt;/span&gt;
      &lt;span title=&#39;_order&#39;&gt;7&lt;/span&gt;
      &lt;span title=&#39;_begincolumn&#39;&gt;True&lt;/span&gt;
      &lt;span title=&#39;_isgroupheader&#39;&gt;True&lt;/span&gt;
      &lt;span title=&#39;_groupstyle&#39;&gt;Whitespace&lt;/span&gt;
    &lt;/div&gt;
    &lt;div title=&#39;_link&#39;&gt;
      &lt;span title=&#39;_title&#39;&gt;Emergency Response&lt;/span&gt;
      &lt;span title=&#39;_order&#39;&gt;8&lt;/span&gt;
      &lt;span title=&#39;_begincolumn&#39;&gt;False&lt;/span&gt;
      &lt;span title=&#39;_group&#39;&gt;Group3&lt;/span&gt;
      &lt;span title=&#39;_linkurl&#39;&gt;
            &lt;a href=&#39;https://www.google.com.au&#39;&gt;https://www.google.com.au&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_imageurl&#39;&gt;
            &lt;a href=&#39;https://www.care.org.au/wp-content/uploads/2014/11/icon-tent-100.jpg&#39;&gt;https://www.care.org.au/wp-content/uploads/2014/11/icon-tent-100.jpg&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_style&#39;&gt;Default&lt;/span&gt;
    &lt;/div&gt;
    &lt;div title=&#39;_link&#39;&gt;
      &lt;span title=&#39;_title&#39;&gt;Office Services, Facilities and Supplies&lt;/span&gt;
      &lt;span title=&#39;_order&#39;&gt;9&lt;/span&gt;
      &lt;span title=&#39;_begincolumn&#39;&gt;False&lt;/span&gt;
      &lt;span title=&#39;_group&#39;&gt;Group3&lt;/span&gt;
      &lt;span title=&#39;_linkurl&#39;&gt;
            &lt;a href=&#39;https://www.google.com.au&#39;&gt;https://www.google.com.au&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_imageurl&#39;&gt;
            &lt;a href=&#39;https://www.care.org.au/wp-content/uploads/2014/11/icon-tent-100.jpg&#39;&gt;https://www.care.org.au/wp-content/uploads/2014/11/icon-tent-100.jpg&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_style&#39;&gt;Default&lt;/span&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div title=&#39;_view&#39;&gt;
    &lt;span title=&#39;_columns&#39;&gt;3&lt;/span&gt;
    &lt;span title=&#39;_linkstyle&#39;&gt;Default&lt;/span&gt;
    &lt;span title=&#39;_groupstyle&#39;&gt;Whitespace&lt;/span&gt;
  &lt;/div&gt;
&lt;/div&gt;" EnableOriginalValue="False" ViewFlag="0" ViewContentTypeId="" ListName="{733915EE-33C2-40C6-BE6F-B0F2063B3B6E}" ListId="733915ee-33c2-40c6-be6f-b0f2063b3b6e" PageSize="-1" UseSQLDataSourcePaging="True" DataSourceID="" ShowWithSampleData="False" AsyncRefresh="False" ManualRefresh="False" AutoRefresh="False" AutoRefreshInterval="60" InitialAsyncDataFetch="False" Title="How can we help?" FrameType="TitleBarOnly" SuppressWebPartChrome="False" Description="How can we help?" IsIncluded="True" ZoneID="HowHelpZone" PartOrder="2" FrameState="Normal" AllowRemove="True" AllowZoneChange="True" AllowMinimize="True" AllowConnect="True" AllowEdit="True" AllowHide="True" IsVisible="True" DetailLink="" HelpLink="" HelpMode="Modeless" Dir="Default" PartImageSmall="" MissingAssembly="Cannot import this Web Part." PartImageLarge="" IsIncludedFilter="" ExportControlledProperties="True" ConnectionID="00000000-0000-0000-0000-000000000000" ID="SummaryLinkWebPart2" ChromeType="TitleOnly" ExportMode="All" __MarkupType="vsattributemarkup" __WebPartId="{6CDB691D-4491-4635-90B9-87477EBDF821}" WebPart="true" Height="" Width=""><Xsl>
<xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cmswrt="http://schemas.microsoft.com/WebPart/v3/Publishing/runtime" exclude-result-prefixes="xsl cmswrt x" > <xsl:import href="/Style Library/XSL Style Sheets/Header.xsl" /> <xsl:import href="/Style Library/XSL Style Sheets/ItemStyle.xsl" /> <xsl:import href="/Style Library/XSL Style Sheets/SummaryLinkMain.xsl" /> </xsl:stylesheet></Xsl>
<SampleData>
<dsQueryResponse><Rows><Row Title="Group Header" Order="1" BeginColumn="True" IsGroupHeader="True" /><Row Title="Item 1" LinkUrl="http://Item1" Group="Group Header" Order="2" BeginColumn="False" IsGroupHeader="False" /><Row Title="Item 2" LinkUrl="http://Item2" Group="Group Header" Order="3" BeginColumn="False" IsGroupHeader="False" /><Row Title="Item 3" LinkUrl="http://Item3" Group="Group Header" Order="4" BeginColumn="False" IsGroupHeader="False" /></Rows></dsQueryResponse></SampleData>
<DataFields>
</DataFields>
</PublishingWebControls:SummaryLinkWebPart>

                    </ZoneTemplate></WebPartPages:WebPartZone>
                </div>
                <WebPartPages:WebPartZone runat="server" Title="LeftBottomZone" ID="LeftBottomZone"><ZoneTemplate></ZoneTemplate></WebPartPages:WebPartZone>
                <div id="pnffaqwp" style="display:none;">
                    <WebPartPages:WebPartZone runat="server" Title="FaqZone" ID="FaqZone"><ZoneTemplate>
                    <PublishingWebControls:ContentByQueryWebPart runat="server" ItemStyle="FAQs" GroupStyle="DefaultHeader" WebUrl="~sitecollection/business" ListGuid="" FilterField1="wp_faqservicetype" Filter2ChainingOperator="Or" FilterDisplayValue1="" FilterValue1="" FilterType1="Choice" DataMappingViewFields="{fa564e0f-0c70-4ab9-b863-0177e6ddd247},Text;{a02fa469-9f69-4be1-892b-f84ab6256894},HTML;" GroupByDirection="Desc" SortBy="wp_displayorder" SortByFieldType="Number" ItemLimit="5" DataMappings="Description:{a02fa469-9f69-4be1-892b-f84ab6256894},wp_answer,HTML;|ImageUrl:|Title:{fa564e0f-0c70-4ab9-b863-0177e6ddd247},Title,Text;|LinkUrl:|" ServerTemplate="100" UseCopyUtil="True" ShowUntargetedItems="False" EnableOriginalValue="False" ViewFlag="0" ViewContentTypeId="" ListUrl="" ListDisplayName="" ListId="00000000-0000-0000-0000-000000000000" PageSize="-1" UseSQLDataSourcePaging="True" DataSourceID="" ShowWithSampleData="False" AsyncRefresh="False" ManualRefresh="False" AutoRefresh="False" AutoRefreshInterval="60" NoDefaultStyle="" InitialAsyncDataFetch="False" Title="Frequently Asked Questions" FrameType="TitleBarOnly" SuppressWebPartChrome="False" Description="Frequenetly Asked Questions" IsIncluded="True" ZoneID="FaqZone" PartOrder="2" FrameState="Normal" AllowRemove="True" AllowZoneChange="True" AllowMinimize="True" AllowConnect="True" AllowEdit="True" AllowHide="True" IsVisible="True" DetailLink="" HelpLink="" HelpMode="Modeless" Dir="Default" PartImageSmall="" MissingAssembly="Cannot import this Web Part." PartImageLarge="" IsIncludedFilter="" ExportControlledProperties="True" ConnectionID="00000000-0000-0000-0000-000000000000" ID="g_e0927b5f_44de_4428_a376_009168c2dfea" ChromeType="TitleOnly" ExportMode="All" __MarkupType="vsattributemarkup" __WebPartId="{E0927B5F-44DE-4428-A376-009168C2DFEA}" WebPart="true" Height="" Width=""><Xsl>
<xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cmswrt="http://schemas.microsoft.com/WebPart/v3/Publishing/runtime" exclude-result-prefixes="xsl cmswrt x" > <xsl:import href="/Style Library/XSL Style Sheets/Header.xsl" /> <xsl:import href="/Style Library/XSL Style Sheets/ItemStyle.xsl" /> <xsl:import href="/Style Library/XSL Style Sheets/ContentQueryMain.xsl" /> </xsl:stylesheet></Xsl>
<SampleData>
<dsQueryResponse><Rows><Row Title="Item 1" LinkUrl="http://Item1" Group="Group Header" __begincolumn="True" __begingroup="True" /><Row Title="Item 2" LinkUrl="http://Item2" __begincolumn="False" __begingroup="False" /><Row Title="Item 3" LinkUrl="http://Item3" __begincolumn="False" __begingroup="False" /></Rows></dsQueryResponse></SampleData>
<DataFields>
</DataFields>
</PublishingWebControls:ContentByQueryWebPart>

                    </ZoneTemplate></WebPartPages:WebPartZone>
                    <div style="float:right;">
                        <a href="FAQs.aspx">see more Frequently Asked Questions</a>
                    </div>
                </div>
            </div>
        </div>
        <div class="secondary-column  column">
            <div id="publishingBPSideContent">
                <PublishingWebControls:RichHtmlField FieldName="wp_footercontent" HasInitialFocus="True" AllowFonts="False" MinimumEditHeight="400px" runat="server"/>
            </div>
            <div class="webpartZoneContainer">
                 <div id="pnfwhoarewewp">
                 <WebPartPages:WebPartZone runat="server" Title="WhoareWeZone" ID="WhoareWeZone"><ZoneTemplate>
                    <PublishingWebControls:SummaryLinkWebPart runat="server" SummaryLinkStore="&lt;div title=&#39;_schemaversion&#39; id=&#39;_3&#39;&gt;
  &lt;div title=&#39;_links&#39;&gt;
    &lt;div title=&#39;_link&#39;&gt;
      &lt;span title=&#39;_title&#39;&gt;Link 1s&lt;/span&gt;
      &lt;span title=&#39;_order&#39;&gt;1&lt;/span&gt;
      &lt;span title=&#39;_begincolumn&#39;&gt;True&lt;/span&gt;
      &lt;span title=&#39;_linkurl&#39;&gt;
        &lt;a href=&#39;http://www.google.com&#39;&gt;http://www.google.com&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_imageurl&#39;&gt;
        &lt;a href=&#39;https://image4.owler.com/logo/brueggemann-lumber-do-it-center_owler_20160228_075945_large.png&#39;&gt;https://image4.owler.com/logo/brueggemann-lumber-do-it-center_owler_20160228_075945_large.png&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_style&#39;&gt;Default&lt;/span&gt;
    &lt;/div&gt;
    &lt;div title=&#39;_link&#39;&gt;
      &lt;span title=&#39;_title&#39;&gt;Link 2&lt;/span&gt;
      &lt;span title=&#39;_order&#39;&gt;2&lt;/span&gt;
      &lt;span title=&#39;_begincolumn&#39;&gt;False&lt;/span&gt;
      &lt;span title=&#39;_linkurl&#39;&gt;
            &lt;a href=&#39;http://www.google.com&#39;&gt;http://www.google.com&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_imageurl&#39;&gt;
            &lt;a href=&#39;https://image4.owler.com/logo/brueggemann-lumber-do-it-center_owler_20160228_075945_large.png&#39;&gt;https://image4.owler.com/logo/brueggemann-lumber-do-it-center_owler_20160228_075945_large.png&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_style&#39;&gt;Default&lt;/span&gt;
    &lt;/div&gt;
    &lt;div title=&#39;_link&#39;&gt;
      &lt;span title=&#39;_title&#39;&gt;Link 3&lt;/span&gt;
      &lt;span title=&#39;_order&#39;&gt;3&lt;/span&gt;
      &lt;span title=&#39;_begincolumn&#39;&gt;False&lt;/span&gt;
      &lt;span title=&#39;_linkurl&#39;&gt;
            &lt;a href=&#39;http://www.google.com&#39;&gt;http://www.google.com&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_imageurl&#39;&gt;
            &lt;a href=&#39;https://image4.owler.com/logo/brueggemann-lumber-do-it-center_owler_20160228_075945_large.png&#39;&gt;https://image4.owler.com/logo/brueggemann-lumber-do-it-center_owler_20160228_075945_large.png&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_style&#39;&gt;Default&lt;/span&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div title=&#39;_view&#39;&gt;
    &lt;span title=&#39;_columns&#39;&gt;1&lt;/span&gt;
    &lt;span title=&#39;_linkstyle&#39;&gt;Default&lt;/span&gt;
    &lt;span title=&#39;_groupstyle&#39;&gt;Whitespace&lt;/span&gt;
  &lt;/div&gt;
&lt;/div&gt;" EnableOriginalValue="False" ViewFlag="0" ViewContentTypeId="" ListName="{733915EE-33C2-40C6-BE6F-B0F2063B3B6E}" ListId="733915ee-33c2-40c6-be6f-b0f2063b3b6e" PageSize="-1" UseSQLDataSourcePaging="True" DataSourceID="" ShowWithSampleData="False" AsyncRefresh="False" ManualRefresh="False" AutoRefresh="False" AutoRefreshInterval="60" InitialAsyncDataFetch="False" Title="Who are we?" FrameType="TitleBarOnly" SuppressWebPartChrome="False" Description="Who are we?" IsIncluded="True" ZoneID="WhoareWeZone" PartOrder="2" FrameState="Normal" AllowRemove="True" AllowZoneChange="True" AllowMinimize="True" AllowConnect="True" AllowEdit="True" AllowHide="True" IsVisible="True" DetailLink="" HelpLink="" HelpMode="Modeless" Dir="Default" PartImageSmall="" MissingAssembly="Cannot import this Web Part." PartImageLarge="" IsIncludedFilter="" ExportControlledProperties="True" ConnectionID="00000000-0000-0000-0000-000000000000" ID="SummaryLinkWebPart1" ChromeType="TitleOnly" ExportMode="All" __MarkupType="vsattributemarkup" __WebPartId="{11B1E0F7-D7E9-4441-AD06-E07B7E28C4FD}" WebPart="true" Height="" Width=""><Xsl>
<xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cmswrt="http://schemas.microsoft.com/WebPart/v3/Publishing/runtime" exclude-result-prefixes="xsl cmswrt x" > <xsl:import href="/Style Library/XSL Style Sheets/Header.xsl" /> <xsl:import href="/Style Library/XSL Style Sheets/ItemStyle.xsl" /> <xsl:import href="/Style Library/XSL Style Sheets/SummaryLinkMain.xsl" /> </xsl:stylesheet></Xsl>
<SampleData>
<dsQueryResponse><Rows><Row Title="Group Header" Order="1" BeginColumn="True" IsGroupHeader="True" /><Row Title="Item 1" LinkUrl="http://Item1" Group="Group Header" Order="2" BeginColumn="False" IsGroupHeader="False" /><Row Title="Item 2" LinkUrl="http://Item2" Group="Group Header" Order="3" BeginColumn="False" IsGroupHeader="False" /><Row Title="Item 3" LinkUrl="http://Item3" Group="Group Header" Order="4" BeginColumn="False" IsGroupHeader="False" /></Rows></dsQueryResponse></SampleData>
<DataFields>
</DataFields>
</PublishingWebControls:SummaryLinkWebPart>

                    </ZoneTemplate></WebPartPages:WebPartZone>
                 </div>
                 <div id="pnftoplinkswp" style="display:none;">
                 <WebPartPages:WebPartZone runat="server" Title="TopLinks" ID="TopLinksZone"><ZoneTemplate>
                    <PnFWP:ContentByQueryWebPart runat="server" ItemStyle="ClickableFieldOnly" GroupStyle="DefaultHeader" WebUrl="~sitecollection/business/" ListGuid="" ListName="P &amp; F Top Projects" FilterField1="wp_projectareas" Filter1ChainingOperator="Or" Filter2ChainingOperator="Or" FilterType1="Choice" DataMappingViewFields="{c03d8d0e-fbad-43d4-9ff9-8cf4d2777bf1},URL;{fa564e0f-0c70-4ab9-b863-0177e6ddd247},Text;" GroupByDirection="Desc" SortBy="wp_displayorder" SortByFieldType="Number" ItemLimit="5" DataMappings="Description:|ImageUrl:|Title:{fa564e0f-0c70-4ab9-b863-0177e6ddd247},Title,Text;|LinkUrl:{c03d8d0e-fbad-43d4-9ff9-8cf4d2777bf1},wp_url,URL;|" ServerTemplate="100" ShowUntargetedItems="False" EnableOriginalValue="False" ViewFlag="0" ViewContentTypeId="" ListUrl="" ListDisplayName="" ListId="00000000-0000-0000-0000-000000000000" PageSize="-1" UseSQLDataSourcePaging="True" DataSourceID="" ShowWithSampleData="False" AsyncRefresh="False" ManualRefresh="False" AutoRefresh="False" AutoRefreshInterval="60" NoDefaultStyle="" InitialAsyncDataFetch="False" Title="Top Projects" FrameType="TitleBarOnly" SuppressWebPartChrome="False" Description="Top projects" IsIncluded="True" ZoneID="ImportedPartZone" PartOrder="2" FrameState="Normal" AllowRemove="True" AllowZoneChange="True" AllowMinimize="True" AllowConnect="True" AllowEdit="True" AllowHide="True" IsVisible="True" DetailLink="" HelpLink="" HelpMode="Modeless" Dir="Default" PartImageSmall="" MissingAssembly="&lt;%$Resources:cmscore,WebPartImportError%&gt;" ImportErrorMessage="&lt;%$Resources:cmscore,WebPartImportError%&gt;" PartImageLarge="" IsIncludedFilter="" ExportControlledProperties="True" ConnectionID="00000000-0000-0000-0000-000000000000" ID="g_ab0c1314_4aae_42f4_b0b0_e34058c5cb57" ChromeType="TitleOnly" ExportMode="All" __MarkupType="vsattributemarkup" __WebPartId="{ab0c1314-4aae-42f4-b0b0-e34058c5cb57}" WebPart="true" Height="" Width="">
        <Xsl><xsl:stylesheet version="1.0" exclude-result-prefixes="xsl cmswrt x"><xsl:import href="/Style Library/XSL Style Sheets/Header.xsl" /><xsl:import href="/Style Library/XSL Style Sheets/ItemStyle.xsl" /><xsl:import href="/Style Library/XSL Style Sheets/ContentQueryMain.xsl" /></xsl:stylesheet></Xsl><SampleData><dsQueryResponse><Rows><Row Title="Item 1" LinkUrl="http://Item1" Group="Group Header" __begincolumn="True" __begingroup="True" /><Row Title="Item 2" LinkUrl="http://Item2" __begincolumn="False" __begingroup="False" /><Row Title="Item 3" LinkUrl="http://Item3" __begincolumn="False" __begingroup="False" /></Rows></dsQueryResponse></SampleData><DataFields /></PnFWP:ContentByQueryWebPart>               

                    </ZoneTemplate></WebPartPages:WebPartZone>
                 </div>
                 <div id="pnftopdocswp" style="display:none;">
                 <WebPartPages:WebPartZone runat="server" Title="TopDocs" ID="TopDocsZone"><ZoneTemplate>
                    <PublishingWebControls:SummaryLinkWebPart runat="server" SummaryLinkStore="&lt;div title=&#39;_schemaversion&#39; id=&#39;_3&#39;&gt;
  &lt;div title=&#39;_links&#39;&gt;
    &lt;div title=&#39;_link&#39;&gt;
      &lt;span title=&#39;_title&#39;&gt;Document 1&lt;/span&gt;
      &lt;span title=&#39;_order&#39;&gt;1&lt;/span&gt;
      &lt;span title=&#39;_begincolumn&#39;&gt;True&lt;/span&gt;
      &lt;span title=&#39;_linkurl&#39;&gt;
        &lt;a href=&#39;https://www.google.com.au&#39;&gt;https://www.google.com.au&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_imageurlalttext&#39;&gt;28684831&lt;/span&gt;
      &lt;span title=&#39;_style&#39;&gt;NoImage&lt;/span&gt;
    &lt;/div&gt;
    &lt;div title=&#39;_link&#39;&gt;
      &lt;span title=&#39;_title&#39;&gt;Document 2&lt;/span&gt;
      &lt;span title=&#39;_order&#39;&gt;2&lt;/span&gt;
      &lt;span title=&#39;_begincolumn&#39;&gt;False&lt;/span&gt;
      &lt;span title=&#39;_linkurl&#39;&gt;
        &lt;a href=&#39;https://www.google.com.au&#39;&gt;https://www.google.com.au&lt;/a&gt;
      &lt;/span&gt;
      &lt;span title=&#39;_imageurlalttext&#39;&gt;(21321434)&lt;/span&gt;
      &lt;span title=&#39;_style&#39;&gt;NoImage&lt;/span&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div title=&#39;_view&#39;&gt;
    &lt;span title=&#39;_columns&#39;&gt;1&lt;/span&gt;
    &lt;span title=&#39;_linkstyle&#39;&gt;Default&lt;/span&gt;
    &lt;span title=&#39;_groupstyle&#39;&gt;Whitespace&lt;/span&gt;
  &lt;/div&gt;
&lt;/div&gt;" EnableOriginalValue="False" ViewFlag="0" ViewContentTypeId="" ListName="{733915EE-33C2-40C6-BE6F-B0F2063B3B6E}" ListId="733915ee-33c2-40c6-be6f-b0f2063b3b6e" PageSize="-1" UseSQLDataSourcePaging="True" DataSourceID="" ShowWithSampleData="False" AsyncRefresh="False" ManualRefresh="False" AutoRefresh="False" AutoRefreshInterval="60" InitialAsyncDataFetch="False" Title="Top Documents" FrameType="TitleBarOnly" SuppressWebPartChrome="False" Description="Top Documents" IsIncluded="True" ZoneID="TopDocsZone" PartOrder="2" FrameState="Normal" AllowRemove="True" AllowZoneChange="True" AllowMinimize="True" AllowConnect="True" AllowEdit="True" AllowHide="True" IsVisible="True" DetailLink="" HelpLink="" HelpMode="Modeless" Dir="Default" PartImageSmall="" MissingAssembly="Cannot import this Web Part." PartImageLarge="" IsIncludedFilter="" ExportControlledProperties="True" ConnectionID="00000000-0000-0000-0000-000000000000" ID="g_24c3fca2_46eb_464f_8277_59eb65589a16" ChromeType="TitleOnly" ExportMode="All" __MarkupType="vsattributemarkup" __WebPartId="{6C08AE82-3685-49F1-9E16-66345DA6AF11}" WebPart="true" Height="" Width=""><Xsl>
<xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cmswrt="http://schemas.microsoft.com/WebPart/v3/Publishing/runtime" exclude-result-prefixes="xsl cmswrt x" > <xsl:import href="/Style Library/XSL Style Sheets/Header.xsl" /> <xsl:import href="/Style Library/XSL Style Sheets/ItemStyle.xsl" /> <xsl:import href="/Style Library/XSL Style Sheets/SummaryLinkMain.xsl" /> </xsl:stylesheet></Xsl>
<SampleData>
<dsQueryResponse><Rows><Row Title="Group Header" Order="1" BeginColumn="True" IsGroupHeader="True" /><Row Title="Item 1" LinkUrl="http://Item1" Group="Group Header" Order="2" BeginColumn="False" IsGroupHeader="False" /><Row Title="Item 2" LinkUrl="http://Item2" Group="Group Header" Order="3" BeginColumn="False" IsGroupHeader="False" /><Row Title="Item 3" LinkUrl="http://Item3" Group="Group Header" Order="4" BeginColumn="False" IsGroupHeader="False" /></Rows></dsQueryResponse></SampleData>
<DataFields>
</DataFields>
</PublishingWebControls:SummaryLinkWebPart>

                    </ZoneTemplate></WebPartPages:WebPartZone>
                 </div>
                 <div>
                <WebPartPages:WebPartZone runat="server" Title="Right" ID="Right"><ZoneTemplate></ZoneTemplate></WebPartPages:WebPartZone>
                </div>
            </div>
        </div>
    </div>
    <div class="page-footer">
        <div class="mini-footer content-container">
            <div class="row footer-bottom">
                <div class="footer-bottom-column column footer-bottom-column-copyright">
                    © Western Power <span><script type="text/javascript">document.write(new Date().getFullYear());</script></span>
                </div>
                <div class="mini-footer-bg"><img src="<asp:Literal runat='server' Text='<%$SPUrl:~sitecollection/Style Library/WP/img/electron-sml.png%>' __designer:Preview="/sites/intranet/Style Library/WP/img/electron-sml.png" __designer:Values="&lt;P N=&#39;Text&#39; Bound=&#39;True&#39; T=&#39;SPUrl:~sitecollection/Style Library/WP/img/electron-sml.png&#39; /&gt;&lt;P N=&#39;ID&#39; ID=&#39;1&#39; T=&#39;ctl09&#39; /&gt;&lt;P N=&#39;Page&#39; ID=&#39;2&#39; /&gt;&lt;P N=&#39;TemplateControl&#39; R=&#39;2&#39; /&gt;&lt;P N=&#39;AppRelativeTemplateSourceDirectory&#39; R=&#39;-1&#39; /&gt;"> </asp:Literal>
                    &quot; /&gt;</div>
            </div>
        </div>
    </div>
</asp:Content>```
![image](https://user-images.githubusercontent.com/30993026/53154494-e19e0500-35f5-11e9-8aa5-1bc280de462d.png)
SubPointSupport commented 5 years ago

Thanks for raising this, @DawsyB

The model looks good. Is it always the same page or random, one out of the three mentioned? Could you please share the following info as well?

We'll test out this model and case on our end.

DawsyB commented 5 years ago

It is always the same page. Once, I do the check-in trick it fixes for that particular page layout. When I run it on a fresh site collection, I get "modified by another user error" and on all subsequent runs I get "Save conflict".

Versioning settings: Create major versions Version of the tenant: O365

Do let me know if you any more information. Cheers

DawsyB commented 5 years ago

To fix this. I had to provision the page layout with empty webpart zones (i.e remove all the embedded webpart) then later add them back again using CSOM once they are provisioned.

With more investigation I think the issue is SP Meta makes multiple calls while provisioning a page layout with embedded web part. While SP also makes some changes and tries to overwrite the same file causing a conflict!