web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / BATCH API fails at sch...
Power Automate
Answered

BATCH API fails at schema validation

(0) ShareShare
ReportReport
Posted on by 7

I have a batch API that is pulling staff information from our school management system. The API call works well in other applications, but in Power Automate there's something strange going on.

 

When running the flow, it gives me an error that the MiddleName field is expecting a string, but returning a null. In the dataset, there are some teachers with no middle name listed, so the field is null. This is making the flow fall over, but I am not sure how to fix this step.

 

I am looking to send the output from this into a Microsoft List so that teachers can look up the contact details of other staff (apparently looking in Outlook or the school management system is too hard for them, so maybe this will work for them...)

 

Below is JSON Schema based on the sample I provided to the flow from the sample.

 

 

{
 "type": "object",
 "properties": {
 "iSAMS": {
 "type": "object",
 "properties": {
 "HRManager": {
 "type": "object",
 "properties": {
 "CurrentStaff": {
 "type": "object",
 "properties": {
 "StaffMember": {
 "type": "array",
 "items": {
 "type": "object",
 "properties": {
 "@@Id": {
 "type": "string"
 },
 "@@PersonId": {
 "type": "string"
 },
 "@@PersonGuid": {
 "type": "string"
 },
 "Initials": {
 "type": "string"
 },
 "UserCode": {
 "type": "string"
 },
 "Title": {
 "type": "string"
 },
 "Forename": {
 "type": "string"
 },
 "MiddleNames": {
 "type": "string"
 },
 "Surname": {
 "type": "string"
 },
 "FullName": {
 "type": "string"
 },
 "NameInitials": {
 "type": "string"
 },
 "PreferredName": {
 "type": "string"
 },
 "Salutation": {
 "type": "string"
 },
 "DOB": {
 "type": "string"
 },
 "Gender": {
 "type": "string"
 },
 "SchoolEmailAddress": {
 "type": "string"
 },
 "SchoolMobileNumber": {},
 "PersonalMobileNumber": {},
 "TeachingStaff": {
 "type": "string"
 },
 "Divisions": {
 "type": "object",
 "properties": {
 "Division": {
 "type": "array",
 "items": {
 "type": "object",
 "properties": {
 "@@Id": {
 "type": "string"
 },
 "Name": {
 "type": "string"
 }
 },
 "required": [
 "@@Id",
 "Name"
 ]
 }
 }
 }
 },
 "Roles": {
 "type": "object",
 "properties": {
 "Role": {
 "type": "object",
 "properties": {
 "@@Id": {
 "type": "string"
 },
 "Name": {
 "type": "string"
 }
 }
 }
 }
 },
 "PreviousMISId": {
 "type": "string"
 },
 "UserName": {
 "type": "string"
 },
 "LeavingDate": {
 "type": "string"
 }
 },
 "required": [
 "@@Id",
 "@@PersonId",
 "@@PersonGuid",
 "Initials",
 "UserCode",
 "Title",
 "Forename",
 "Surname",
 "FullName",
 "NameInitials",
 "PreferredName",
 "Salutation",
 "DOB",
 "Gender",
 "SchoolEmailAddress",
 "SchoolMobileNumber",
 "TeachingStaff",
 "Divisions"
 ]
 }
 }
 }
 }
 }
 }
 }
 }
 }
}

 

 

Categories:
I have the same question (0)
  • Expiscornovus Profile Picture
    33,870 Most Valuable Professional on at

    Hi @Always_Flying,

     

    You can amend your parse json schema to allow null values for certain properties.

     

    April Dunnam has a nice blog about this approach:

    https://www.sharepointsiren.com/2018/10/flow-parse-json-null-error-fix/

     

    For example MiddleNames 

    "MiddleNames": { "type": "string" }

     

    Can be converted to something like below

    "MiddleNames": { "type": ["string","null"]}

      

  • Always_Flying Profile Picture
    7 on at

    @Expiscornovus thank you so much for that pointer!

     

    I applied that logic to the "MiddleNames" and several other fields, which have all worked. There was also a later array nested within an object that was originally object within object. Played around using those same principles, which appear to have worked for that step....

     

    And now we have another snag, which I feel is connected to the array within an object?

    Screenshot 2023-05-31 at 13.57.06.jpg
    Screenshot 2023-05-31 at 13.56.27.jpg
  • Verified answer
    Expiscornovus Profile Picture
    33,870 Most Valuable Professional on at

    Hi @Always_Flying,

     

    The Apply to each expects an array. However, the body is an object.

     

    As a workaround can you place square brackets around the body and try again?

     

    squarebrackets_workaround.png

  • Always_Flying Profile Picture
    7 on at

    Fantastic @Expiscornovus 

    That cracked it....

    I found that putting this snippet of code then removes it from being available to the list, so I removed the null from the type section...

    "MiddleNames": { "type": ["string","null"]}

    It then sprung into life!

     

    Thanks again!

     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the March Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Automate

#1
Vish WR Profile Picture

Vish WR 873

#2
Valantis Profile Picture

Valantis 813

#3
Haque Profile Picture

Haque 526

Last 30 days Overall leaderboard