400 from linkedin when uploading video

I can’t seem to post a video from my clawbot integration I can post pictures and text to linkedin i get 400 for video the file size is 64mb

Thanks for reaching out, let me check and get back to you

Thank you

So it seems like posting a video is quite involved and OpenClaw easily makes mistakes somewhere. I updated the skill doc for both api-gateway and linkedin-api to specify what needs to be done:

Please install the latest version of the skill and retry. It’s basically the “Create a Video Post” section, and if OpenClaw still struggles after the skill update, make it reference the “Create a Video Post” section in the skill doc and follow the instructions. Let me know if you’re able to make the video post this way.

I’m updating the LinkedIn-related ClawHub skills to latest first, then I’ll inspect the new “Create a Video Post” instructions and retry the video post using that exact flow. (edited)
[8:04 PM]The install syntax is a little different than I guessed. I’m checking the exact ClawHub install/upgrade syntax and then I’ll pull the latest versions properly. (edited)
[8:04 PM]Got it — latest versions are:

  • api-gateway → 1.0.71
  • linkedin-api → 1.0.4

I’m installing those exact versions now and then I’ll read the updated LinkedIn video-post instructions. (edited)
[8:04 PM]I found the exact missing piece in the updated skill docs: LinkedIn video posting is a 4-step flow, and I skipped the critical finalizeUpload step before creating the post.

I’m retrying now using the exact documented flow. (edited)
[8:05 PM]I retried using the updated skill-doc flow — the proper 4-step “Create a Video Post” path:

  1. initialize upload
  2. upload binary to the signed URL
  3. finalize upload
  4. create post

So yes, I corrected the earlier mistake.

Result:

• the request got further than before
• but it still failed, now with:
• HTTP 500 Internal Server Error

That means:

• we’re past the obvious client-side flow mistake
• the remaining failure is now server-side on the LinkedIn/Maton path for video posting

So the updated skill doc did help:

• it clarified the missing finalize step
• I followed it
• and the failure changed from the earlier bad request shape to a 500

That’s progress, but the personal video post still did not go live yet.

Where is the 500 coming from? Can you ask your openclaw to print the exact request and response?

What succeeded before the 500

These steps all worked:

  1. GET /linkedin/rest/me

• returned your member identity successfully

  1. POST /linkedin/rest/videos?action=initializeUpload

• returned a video URN and signed upload URL

  1. PUT to the signed upload URL

• binary upload succeeded

  1. POST /linkedin/rest/videos?action=finalizeUpload

• finalize step succeeded

Where it fails

  1. POST /linkedin/rest/posts

• this is the step that returns 500 Internal Server Error

So the failure is not:

• auth
• identity
• upload init
• binary upload
• or finalize

It’s specifically:

• create post with uploaded video URN

───

Exact shape of the post payload we’re sending

For the final post create call, we’re sending this shape:

{
“author”: “urn:li​:person:7owprQaFpw”,
“lifecycleState”: “PUBLISHED”,
“visibility”: “PUBLIC”,
“commentary”: “The agentic age is going to be defined by more than model quality. OpenAI is racing for reach. Anthropic is racing to define the protocol layer. Open systems like OpenClaw are racing for ownership, orchestration, and control. The next era will be decided by orchestration. -a7bot”,
“distribution”: {
“feedDistribution”: “MAIN_FEED”
},
“content”: {
“media”: {
“id”: “urn:li:video:…actual-uploaded-video-urn…”,
“title”: “The agentic age will be decided by orchestration”
}
}
}
The actual uploaded video URN was used in the real request.
I’m redacting it here only because the debug print I showed separately used a placeholder example.

───

Exact video file we’re sending

File:

• /Users/anderskitson/Projects/agentic-age-video/output/agentic-age-final.mp4

Container

• format: mp4
• brands: isomiso2avc1mp41

We successfully complete the full video upload flow:

• GET /linkedin/rest/me
• POST /linkedin/rest/videos?action=initializeUpload
• binary PUT to the signed upload URL
• POST /linkedin/rest/videos?action=finalizeUpload

• POST /linkedin/rest/posts

That call returns 500 Internal Server Error when referencing the uploaded urn:li:video:*.

The request seems mostly identical to my successful request. Let me DM you for your email address for the Maton account

Sent the friend request to DM you