title: ValidationTechnicalProfile is not executed - B2C Custom Policy
body: <p>I am attempting to call a RESTful technical profile by using ValidationTechnicalProfile. I have checked application insights and I can see the OutputClaimsTransformations happening, but it skips over the ValidationTechnicalProfile and continues on with the next step. I have tried adding the RESTful technical profile as an Orchestration Step, and that works without any issues.</p>
  <p>Can anyone see what I am doing wrong?</p>
  <p>SignInWithIdProvider.xml</p>
  <pre><code>&lt;TrustFrameworkPolicy xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns=&quot;http://schemas.microsoft.com/online/cpim/schemas/2013/06&quot; PolicySchemaVersion=&quot;0.3.0.0&quot; TenantId=&quot;__TenantId__&quot; PolicyId=&quot;B2C_1A_SignInWithIdProvider&quot; PublicPolicyUri=&quot;http://__TenantId__/B2C_1A_signin_idprovider&quot;&gt;
  &lt;BasePolicy&gt;
      &lt;TenantId&gt;__TenantId__&lt;/TenantId&gt;
      &lt;PolicyId&gt;B2C_1A_TrustFrameworkExtensions&lt;/PolicyId&gt;
  &lt;/BasePolicy&gt;
  &lt;RelyingParty&gt;
      &lt;DefaultUserJourney ReferenceId=&quot;SignInWithIdProvider&quot;/&gt;
      &lt;UserJourneyBehaviors&gt;
          &lt;SingleSignOn Scope=&quot;Policy&quot;/&gt;
          &lt;SessionExpiryType&gt;Rolling&lt;/SessionExpiryType&gt;
          &lt;SessionExpiryInSeconds&gt;1800&lt;/SessionExpiryInSeconds&gt;
          &lt;JourneyFraming Enabled=&quot;true&quot; Sources=&quot;__JourneyFramingSource__&quot;/&gt;
          &lt;ScriptExecution&gt;Allow&lt;/ScriptExecution&gt;
      &lt;/UserJourneyBehaviors&gt;
      &lt;TechnicalProfile Id=&quot;PolicyProfile&quot;&gt;
          &lt;DisplayName&gt;PolicyProfile&lt;/DisplayName&gt;
          &lt;Protocol Name=&quot;OpenIdConnect&quot;/&gt;
          &lt;OutputClaims&gt;
              &lt;OutputClaim ClaimTypeReferenceId=&quot;sessionId&quot; PartnerClaimType=&quot;sid&quot;/&gt;
              &lt;OutputClaim ClaimTypeReferenceId=&quot;objectId&quot; PartnerClaimType=&quot;sub&quot;/&gt;
              &lt;OutputClaim ClaimTypeReferenceId=&quot;securityLevel&quot; PartnerClaimType=&quot;acr&quot;/&gt;
              &lt;OutputClaim ClaimTypeReferenceId=&quot;personalIdentificationNumber&quot; PartnerClaimType=&quot;pid&quot;/&gt;
              &lt;OutputClaim ClaimTypeReferenceId=&quot;signInNames.emailAddress&quot; PartnerClaimType=&quot;email&quot;/&gt;
          &lt;/OutputClaims&gt;
          &lt;SubjectNamingInfo ClaimType=&quot;sub&quot;/&gt;
      &lt;/TechnicalProfile&gt;
  &lt;/RelyingParty&gt;
  </code></pre>
  
  <p>Snippet from TrustFrameworkExtensions.xml</p>
  <pre><code>&lt;ClaimsProvider&gt;
  &lt;Domain&gt;Signin&lt;/Domain&gt;
  &lt;DisplayName&gt;Signin using provider&lt;/DisplayName&gt;
  &lt;TechnicalProfiles&gt;
      &lt;TechnicalProfile Id=&quot;OIDC-SignIn&quot;&gt;
          &lt;DisplayName&gt;Sign-in&lt;/DisplayName&gt;
          &lt;Description&gt;Login with provider&lt;/Description&gt;
          &lt;Protocol Name=&quot;OpenIdConnect&quot;/&gt;
          &lt;Metadata&gt;
              &lt;Item Key=&quot;METADATA&quot;&gt;__WellKnown__&lt;/Item&gt;
              &lt;Item Key=&quot;client_id&quot;&gt;__SignInClientId__&lt;/Item&gt;
              &lt;Item Key=&quot;response_types&quot;&gt;code&lt;/Item&gt;
              &lt;Item Key=&quot;scope&quot;&gt;id profile&lt;/Item&gt;
              &lt;Item Key=&quot;response_mode&quot;&gt;form_post&lt;/Item&gt;
              &lt;Item Key=&quot;HttpBinding&quot;&gt;POST&lt;/Item&gt;
              &lt;Item Key=&quot;UsePolicyInRedirectUri&quot;&gt;false&lt;/Item&gt;
              &lt;Item Key=&quot;SingleLogoutEnabled&quot;&gt;false&lt;/Item&gt;
          &lt;/Metadata&gt;
          &lt;CryptographicKeys&gt;
              &lt;Key Id=&quot;client_secret&quot; StorageReferenceId=&quot;__SignInSecret__&quot;/&gt;
          &lt;/CryptographicKeys&gt;
          &lt;InputClaims&gt;
              &lt;InputClaim ClaimTypeReferenceId=&quot;ui_locales&quot; DefaultValue=&quot;{Culture:RFC5646}&quot;/&gt;
          &lt;/InputClaims&gt;
          &lt;OutputClaims&gt;
              &lt;OutputClaim ClaimTypeReferenceId=&quot;sessionId&quot; PartnerClaimType=&quot;sid&quot;/&gt;
              &lt;OutputClaim ClaimTypeReferenceId=&quot;issuerUserId&quot; PartnerClaimType=&quot;sub&quot;/&gt;
              &lt;OutputClaim ClaimTypeReferenceId=&quot;securityLevel&quot; PartnerClaimType=&quot;acr&quot;/&gt;
              &lt;OutputClaim ClaimTypeReferenceId=&quot;authenticationSource&quot; DefaultValue=&quot;socialIdpAuthentication&quot; AlwaysUseDefaultValue=&quot;true&quot;/&gt;
              &lt;OutputClaim ClaimTypeReferenceId=&quot;personalIdentificationNumber&quot; PartnerClaimType=&quot;pid&quot;/&gt;
              &lt;OutputClaim ClaimTypeReferenceId=&quot;identityProvider&quot; PartnerClaimType=&quot;iss&quot;/&gt;
          &lt;/OutputClaims&gt;
          &lt;OutputClaimsTransformations&gt;
              &lt;OutputClaimsTransformation ReferenceId=&quot;CreateRandomUPNUserName&quot;/&gt;
              &lt;OutputClaimsTransformation ReferenceId=&quot;CreateUserPrincipalName&quot;/&gt;
              &lt;OutputClaimsTransformation ReferenceId=&quot;CreateAlternativeSecurityId&quot;/&gt;
              &lt;OutputClaimsTransformation ReferenceId=&quot;CreateSubjectClaimFromAlternativeSecurityId&quot;/&gt;
          &lt;/OutputClaimsTransformations&gt;
          &lt;ValidationTechnicalProfiles&gt;
              &lt;ValidationTechnicalProfile ReferenceId=&quot;REST-PostNewSession&quot; ContinueOnError=&quot;true&quot;/&gt;
          &lt;/ValidationTechnicalProfiles&gt;
          &lt;UseTechnicalProfileForSessionManagement ReferenceId=&quot;SM-SocialLogin&quot;/&gt;
      &lt;/TechnicalProfile&gt;
  &lt;/TechnicalProfiles&gt;
  </code></pre>
  
  <pre><code>&lt;ClaimsProvider&gt;
  &lt;DisplayName&gt;REST APIs&lt;/DisplayName&gt;
  &lt;TechnicalProfiles&gt;
      &lt;TechnicalProfile Id=&quot;REST-PostNewSession&quot;&gt;
          &lt;DisplayName&gt;Post new session&lt;/DisplayName&gt;
          &lt;Protocol Name=&quot;Proprietary&quot; Handler=&quot;Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&quot;/&gt;
          &lt;Metadata&gt;
              &lt;Item Key=&quot;ServiceUrl&quot;&gt;https://some.apim.url/post-method&lt;/Item&gt;
              &lt;Item Key=&quot;SendClaimsIn&quot;&gt;Body&lt;/Item&gt;
              &lt;Item Key=&quot;AuthenticationType&quot;&gt;Basic&lt;/Item&gt;
          &lt;/Metadata&gt;
          &lt;CryptographicKeys&gt;
              &lt;Key Id=&quot;BasicAuthenticationUsername&quot; StorageReferenceId=&quot;B2C_1A_UserName&quot;/&gt;
              &lt;Key Id=&quot;BasicAuthenticationPassword&quot; StorageReferenceId=&quot;B2C_1A_Password&quot;/&gt;
          &lt;/CryptographicKeys&gt;
          &lt;InputClaims&gt;
              &lt;InputClaim ClaimTypeReferenceId=&quot;sessionId&quot;/&gt;
          &lt;/InputClaims&gt;
          &lt;UseTechnicalProfileForSessionManagement ReferenceId=&quot;SM-Noop&quot;/&gt;
      &lt;/TechnicalProfile&gt;
  &lt;/TechnicalProfiles&gt;
  </code></pre>
  
  <pre><code>&lt;UserJourney Id=&quot;SignInWithIdProvider&quot;&gt;
  &lt;OrchestrationSteps&gt;
      &lt;OrchestrationStep Order=&quot;1&quot; Type=&quot;ClaimsExchange&quot;&gt;
          &lt;Preconditions&gt;
              &lt;Precondition Type=&quot;ClaimsExist&quot; ExecuteActionsIf=&quot;true&quot;&gt;
                  &lt;Value&gt;objectId&lt;/Value&gt;
                  &lt;Action&gt;SkipThisOrchestrationStep&lt;/Action&gt;
              &lt;/Precondition&gt;
          &lt;/Preconditions&gt;
          &lt;ClaimsExchanges&gt;
              &lt;ClaimsExchange Id=&quot;idSignInExchange&quot; TechnicalProfileReferenceId=&quot;OIDC-SignIn&quot;/&gt;
          &lt;/ClaimsExchanges&gt;
      &lt;/OrchestrationStep&gt;
      &lt;OrchestrationStep Order=&quot;2&quot; Type=&quot;ClaimsExchange&quot;&gt;
          &lt;Preconditions&gt;
              &lt;Precondition Type=&quot;ClaimEquals&quot; ExecuteActionsIf=&quot;true&quot;&gt;
                  &lt;Value&gt;authenticationSource&lt;/Value&gt;
                  &lt;Value&gt;localAccountAuthentication&lt;/Value&gt;
                  &lt;Action&gt;SkipThisOrchestrationStep&lt;/Action&gt;
              &lt;/Precondition&gt;
          &lt;/Preconditions&gt;
          &lt;ClaimsExchanges&gt;
              &lt;ClaimsExchange Id=&quot;AlternativeSecurityId&quot; TechnicalProfileReferenceId=&quot;AlternativeSecurityId-NoError&quot;/&gt;
          &lt;/ClaimsExchanges&gt;
      &lt;/OrchestrationStep&gt;
  &lt;/UserJourney&gt;
  </code></pre>