Help

The Community will be temporarily unavailable starting on Friday February 28. We’ll be back as soon as we can! To learn more, check out our Announcements blog post.

Invalid request: parameter validation failed. Check your request data.

Topic Labels: API Scripting
Solved
Jump to Solution
4260 1
cancel
Showing results for 
Search instead for 
Did you mean: 
adamshand
4 - Data Explorer
4 - Data Explorer

Hello,

I'm a new to the AirTable API and trying to automate adding records with data from another API.  I have this function:

	async function updateCrewRecords(data: CrewDetailsType[]) {
		const crewBase = new Airtable({ apiKey: AT_API_KEY }).base('appxxx')
		const table = cewBase('tblxxx')

		const records = data.map((crew) => ({
			fields: {
				CrewID: crew.CrewID,
				CompanyID: crew.CompanyID,
				IsActive: crew.IsActive,
				Position: crew.Position,
			},
		}))

		try {
			// const response = await table.create(records, { typecast: true })
			const response = await table.update(records, {
				typecast: true,
				performUpsert: true,
				fieldsToMergeOn: ['CrewID'],
			})
		} catch (e: any) {
			const errorMsg = `updateCrewRecords(): ${e.message}`
			console.log(e.statusCode, errorMsg)
			// throw error(e.statusCode, e.message)
		}
	}

 The commented out table.create(records) works as expected, but the upsert doesn't.  The error I'm getting is:

422 updateCrewRecords(): Invalid request: parameter validation failed. Check your request data. 

I can't find any way to get any more specific information on what is going wrong.

Any help would be much appreciated!
Thanks,
Adam.

1 Solution

Accepted Solutions
adamshand
4 - Data Explorer
4 - Data Explorer

<grr> finally ask for help and then figure it out. 🙄

This works. 😮💨

const response = await table.update(records, {
	typecast: true,
	performUpsert: {
		fieldsToMergeOn: ['CrewID'],
	},
})

See Solution in Thread

1 Reply 1
adamshand
4 - Data Explorer
4 - Data Explorer

<grr> finally ask for help and then figure it out. 🙄

This works. 😮💨

const response = await table.update(records, {
	typecast: true,
	performUpsert: {
		fieldsToMergeOn: ['CrewID'],
	},
})