nexrender icon indicating copy to clipboard operation
nexrender copied to clipboard

nexrender-cli-macos failing to render for "an unknown reason"

Open Gooseus opened this issue 2 years ago • 23 comments

Describe the bug I'm trying to do a test nexrender on a simple project with a text layer.

{
  "template": {
      "src": "file:///Users/gooseus/nexrender-pipeline/test-nexrender.aep",
      "composition": "TestComp",
      "outputModule": "H.264 - Match Render Settings - 15 Mbps",
      "outputExt": "mp4",
      "settingsTemplate": "Best Settings"
  },
  "assets": [
    {
      "type": "data",
      "layerName": "PLACEHOLDER",
      "property": "Source Text",
      "value": "Gooseus"
    }
  ]
}

But am getting an error without a lot of information, even with the --debug flag:

$ NEXRENDER_ENABLE_AELOG_LEGACY_TEMP_FOLDER=TRUE ./nexrender-cli-macos -f myjob.json --debug --skip-cleanup
> starting nexrender-cli
using automatically determined directory of After Effects installation:
 - /Applications/Adobe After Effects 2024/aerender
checking After Effects command line renderer patch...
command line patch already is in place
[_v5CsAHfy9qUL2u8YoAj9] setting up job...
[_v5CsAHfy9qUL2u8YoAj9] working directory is: /var/folders/gm/hdxp66557mz7dn415qlccnfw0000gn/T/nexrender/_v5CsAHfy9qUL2u8YoAj9
[_v5CsAHfy9qUL2u8YoAj9] applying predownload actions...
[_v5CsAHfy9qUL2u8YoAj9] downloading assets...
[_v5CsAHfy9qUL2u8YoAj9] applying postdownload actions...
[_v5CsAHfy9qUL2u8YoAj9] applying prerender actions...
[_v5CsAHfy9qUL2u8YoAj9] running script assemble...
[_v5CsAHfy9qUL2u8YoAj9] rendering job...
[_v5CsAHfy9qUL2u8YoAj9] setting aerender log path to temp folder: /var/folders/gm/hdxp66557mz7dn415qlccnfw0000gn/T/nexrender/aerender-_v5CsAHfy9qUL2u8YoAj9.log
[_v5CsAHfy9qUL2u8YoAj9] spawning aerender process: /Applications/Adobe After Effects 2024/aerender -project /var/folders/gm/hdxp66557mz7dn415qlccnfw0000gn/T/nexrender/_v5CsAHfy9qUL2u8YoAj9/test-nexrender.aep -comp TestComp -output /var/folders/gm/hdxp66557mz7dn415qlccnfw0000gn/T/nexrender/_v5CsAHfy9qUL2u8YoAj9/result.mp4 -OMtemplate H.264 - Match Render Settings - 15 Mbps -RStemplate Best Settings -r /var/folders/gm/hdxp66557mz7dn415qlccnfw0000gn/T/nexrender/_v5CsAHfy9qUL2u8YoAj9/nexrender-_v5CsAHfy9qUL2u8YoAj9-script.jsx
[_v5CsAHfy9qUL2u8YoAj9] skipping the clean up...
> job rendering failed
Error: aerender.exe failed to render the output into the file due to an unknown reason
    at ChildProcess.<anonymous> (/snapshot/nexrender/packages/nexrender-core/src/tasks/render.js)
    at ChildProcess.emit (node:events:537:28)
    at maybeClose (node:internal/child_process:1091:16)
    at Socket.<anonymous> (node:internal/child_process:449:11)
    at Socket.emit (node:events:537:28)
    at Pipe.<anonymous> (node:net:747:14)

If I copy the aerender command and add escapes for spaces and quotes for the options it works exactly how I was expecting with the desired output:

$ /Applications/Adobe\ After\ Effects\ 2024/aerender -project /var/folders/gm/hdxp66557mz7dn415qlccnfw0000gn/T/nexrender/xHJUmaaYWXJJE2t9hff-C/test-nexrender.aep -comp TestComp -output /var/folders/gm/hdxp66557mz7dn415qlccnfw0000gn/T/nexrender/xHJUmaaYWXJJE2t9hff-C/result.mp4 -OMtemplate "H.264 - Match Render Settings - 15 Mbps" -RStemplate "Best Settings" -r /var/folders/gm/hdxp66557mz7dn415qlccnfw0000gn/T/nexrender/xHJUmaaYWXJJE2t9hff-C/nexrender-xHJUmaaYWXJJE2t9hff-C-script.jsx
aerender version 24.1x78
PROGRESS: Launching After Effects...
Running Script: /var/folders/gm/hdxp66557mz7dn415qlccnfw0000gn/T/nexrender/xHJUmaaYWXJJE2t9hff-C/nexrender-xHJUmaaYWXJJE2t9hff-C-script.jsx
PROGRESS: Adding specified comp to Render Queue
PROGRESS:  1/25/24 2:01:26 PM EST: Starting composition “TestComp”.
...

Information about environment

  • Which version of nexrender are you using?

nexrender-cli-macos --> 1.46.9

  • What kind of the setup do you have?

CLI

  • Are you using pre-built binaries or globally installed npm packages?

pre-built macos binaries

  • Which kind (and version) of operating system you are running it in?

Apple M1 running macOS 13.5.2 (22G91)

  • Additional information

Running node 18.18.1 from within a vscode zsh terminal

Expected behavior I expected the nexrender CLI command to spawn the aerender command and run exactly how it did when I manually ran the command with the generated jsx temp folder assets.

Gooseus avatar Jan 25 '24 19:01 Gooseus

Could you share the aerender log related to that render job?

(it should be in this folder: /var/folders/gm/hdxp66557mz7dn415qlccnfw0000gn/T/nexrender/, with job uid)

inlife avatar Jan 26 '24 06:01 inlife

Hello, I'm having the same issue with Mac mini M2. No log is generated even skipping cleanup parameter. MACOS : tried with the latest (Somata) and previous (Ventura) I have tried with the latest release (1.48.4) and previous one (1.48.3), same issue. Seems that there is an issue while forking the aerender process. If I run the spawn process manually everything goes well.

 ([d6TJ10yLaZOLniTjOHq0i] spawning aerender process: /Applications/Adobe After Effects 2024/aerender -project /Users/administrator/meteogenerator/public/d6TJ10yLaZOLniTjOHq0i/VIA-METEO-V1-NEX-24.aep -comp VIA-METEO_FINAL_1 -output /Users/a  
  dministrator/meteogenerator/public/d6TJ10yLaZOLniTjOHq0i/result.mov -OMtemplate PRORESLT -r /Users/administrator/meteogenerator/public/d6TJ10yLaZOLniTjOHq0i/nexrender-d6TJ10yLaZOLniTjOHq0i-script.jsx -mfr ON 90                             

After Effects is the latest (24.1). I spent hours trying to find the issue without succeed. For information, on the first launch of nexrender-cli-macos I had a "Bad CPU" warning, after rosetta 2 installation the message vanished.

Error message : 
[chNSevvz_PrLHLaER966C] applying predownload actions...                                                 
  [chNSevvz_PrLHLaER966C] downloading assets...                                                           
  [chNSevvz_PrLHLaER966C] applying postdownload actions...                                                
  [chNSevvz_PrLHLaER966C] applying prerender actions...                                                   
  [chNSevvz_PrLHLaER966C] running script assemble...                                                      
  [chNSevvz_PrLHLaER966C] rendering job...                                                                
  [chNSevvz_PrLHLaER966C] -- D E P R E C A T I O N: --                                                    
                                                                                                          
  nexrender is changing the default aerender log path to the project folder.                              
  This is done to streamline the log management and enable efficient log cleanup.                         
                                                                                                          
  If you want to keep the old behavior and mute this message, please set the environment variable NEXREN  
  DER_ENABLE_AELOG_LEGACY_TEMP_FOLDER to true.                                                            
  If you want to switch to the new behavior, please set the environment variable NEXRENDER_ENABLE_AELOG_  
  PROJECT_FOLDER to true.                                                                                 
                                                                                                          
  Right now, the old behavior is still the default, but this will change in the next minor releases.      
  Estimated date of change to the new behavior: 2023-06-01.                                               
                                                                                                          
  catching the error internally                                                                           
  [chNSevvz_PrLHLaER966C] cleaning up...                                                                  
                                                                                                          
                                                                                                          
  Error Output:                                                                                           
  ================                                                                                        
  > job rendering failed                                                                                  
  Error: aerender.exe failed to render the output into the file due to an unknown reason                  
      at ChildProcess.<anonymous> (/snapshot/nexrender/packages/nexrender-core/src/tasks/render.js)       
      at ChildProcess.emit (node:events:537:28)                                                           
      at maybeClose (node:internal/child_process:1091:16)                                                 
      at Socket.<anonymous> (node:internal/child_process:449:11)                                          
      at Socket.emit (node:events:537:28)                                                                 
      at Pipe.<anonymous> (node:net:747:14) 

Had a try with setting the export : NEXRENDER_ENABLE_AELOG_
PROJECT_FOLDER to true. Same behaviour

Thanks for your help. Phil

pvandevelde34 avatar Feb 08 '24 08:02 pvandevelde34

It could be indeed related to macOS binaries being built for x64. Let me try uploading custom-built ARM binaries here later today to verify that this is the case. Would you be able to test that?

inlife avatar Feb 08 '24 09:02 inlife

Yes, I will test this and give you proper feedbacks. Thanks so much. Phil

pvandevelde34 avatar Feb 08 '24 09:02 pvandevelde34

Hi again, Strange thing here if I use this binary : /opt/homebrew/bin/nexrender-cli it works ...

pvandevelde34 avatar Feb 08 '24 14:02 pvandevelde34

Here is a testing file: https://github.com/inlife/nexrender/releases/download/v1.48.4/nexrender-cli-macos-arm-test

inlife avatar Feb 08 '24 14:02 inlife

Hello, Thanks for the binary but this does not solve the issue. Same Error.

pvandevelde34 avatar Feb 08 '24 14:02 pvandevelde34

I see. Another option is getting the Nodejs installed locally and installing nexrender via NPM. That way, you would have a natively running Node.js, which could solve the issue.

inlife avatar Feb 08 '24 14:02 inlife

I manage to find out a solution. If I use this binary /opt/homebrew/bin/nexrender-cli it does work

pvandevelde34 avatar Feb 08 '24 14:02 pvandevelde34

Hi, I have been trying to solve this error for many days but have not been successful. I am using aerender also but it is working correctly This is the error: starting nexrender-cli checking After Effects command line renderer patch... command line patch already is in place [RIGtcE9g_4Mqg6o-ndcM-] setting up job... [RIGtcE9g_4Mqg6o-ndcM-] working directory is: /var/folders/t_/tlb6h5cj2zxbwh1bcsgm4bd80000gn/T/nexrender/RIGtcE9g_4Mqg6o-ndcM- [RIGtcE9g_4Mqg6o-ndcM-] applying predownload actions... [RIGtcE9g_4Mqg6o-ndcM-] downloading assets... [RIGtcE9g_4Mqg6o-ndcM-] applying postdownload actions... [RIGtcE9g_4Mqg6o-ndcM-] applying prerender actions... [RIGtcE9g_4Mqg6o-ndcM-] running script assemble... [RIGtcE9g_4Mqg6o-ndcM-] rendering job... [RIGtcE9g_4Mqg6o-ndcM-] setting aerender log path to project folder: /var/folders/t_/tlb6h5cj2zxbwh1bcsgm4bd80000gn/T/nexrender/RIGtcE9g_4Mqg6o-ndcM-/aerender.log catching the error internally [RIGtcE9g_4Mqg6o-ndcM-] cleaning up...

job rendering failed Error: aerender.exe failed to render the output into the file due to an unknown reason at ChildProcess. (/snapshot/nexrender/packages/nexrender-core/src/tasks/render.js) at ChildProcess.emit (node:events:537:28) at maybeClose (node:internal/child_process:1091:16) at Socket. (node:internal/child_process:449:11) at Socket.emit (node:events:537:28) at Pipe. (node:net:747:14)

MuazAshraf avatar Feb 15 '24 11:02 MuazAshraf

@MuazAshraf could you please provide logs coming from that file: /var/folders/t_/tlb6h5cj2zxbwh1bcsgm4bd80000gn/T/nexrender/RIGtcE9g_4Mqg6o-ndcM-/aerender.log

inlife avatar Feb 25 '24 19:02 inlife

I see. Another option is getting the Nodejs installed locally and installing nexrender via NPM. That way, you would have a natively running Node.js, which could solve the issue.

Just as a side note for anyone else running into this issue like I was earlier today, doing this solved it for me.

wmwccdd avatar Mar 08 '24 03:03 wmwccdd

@MuazAshraf could you please provide logs coming from that file: /var/folders/t_/tlb6h5cj2zxbwh1bcsgm4bd80000gn/T/nexrender/RIGtcE9g_4Mqg6o-ndcM-/aerender.log

I have the same issue and log file is totally missing. It's not been created.

stepan-romankov avatar Apr 05 '24 13:04 stepan-romankov

I'm seeing this issue as well. Tried your suggestion @wmwccdd but still getting the same error.

The job was getting accepted, also passed to the worker from the server, but when the rendering process starts, it says some tmp/result.mp4 file is not found. Not sure what is causing this issue.

JSON Request --> http://localhost:3000/api/v1/jobs

2024-04-05 at 14 20 35

2024-04-05 at 14 21 42

tommycotter avatar Apr 05 '24 18:04 tommycotter

@tommycotter please provide contents of this log file: image

inlife avatar Apr 15 '24 06:04 inlife

Hey @inlife I think it got removed when I closed the server. Don't have anything here. But I remember the file being empty. 2024-04-16 at 18 59 07

tommycotter avatar Apr 16 '24 22:04 tommycotter

Hey ! I have the same error after upgrading to After Effects v24.4 on macOS Sonoma 14.5. When aerender is spawned by nexrender, the rendering process ends immediatly. The job log file is empty. By debugging I discovered that the exit code on instance close is null.

If I copy the aerender process command and add quotes around some parameters it runs fine.

@inlife Do you have any idea to get more error logs from the spawned process ?

torresf avatar May 21 '24 17:05 torresf

@torresf could you share your aeprocess command line both before and after adding quotes?

inlife avatar May 21 '24 17:05 inlife

@torresf could you share your aeprocess command line both before and after adding quotes?

Of course, here is the log :

[nYsEfcbNSwYgTfVgUsln-] spawning aerender process: /Applications/Adobe After Effects 2024/aerender -project /var/folders/7p/mqjfrnb967n28vzl_9p9j0_00000gp/T/nexrender/nYsEfcbNSwYgTfVgUsln-/hfqn6xk6z9h..aep -comp LANDSCAPE_COMP -output /var/folders/7p/mqjfrnb967n28vzl_9p9j0_00000gp/T/nexrender/nYsEfcbNSwYgTfVgUsln-/result.mp4 -RStemplate Auguste Preview -r /var/folders/7p/mqjfrnb967n28vzl_9p9j0_00000gp/T/nexrender/nYsEfcbNSwYgTfVgUsln-/nexrender-nYsEfcbNSwYgTfVgUsln--script.jsx

And here is the working command line :

"/Applications/Adobe After Effects 2024/aerender" -project /var/folders/7p/mqjfrnb967n28vzl_9p9j0_00000gp/T/nexrender/nYsEfcbNSwYgTfVgUsln-/hfqn6xk6z9h..aep -comp LANDSCAPE_COMP -output /var/folders/7p/mqjfrnb967n28vzl_9p9j0_00000gp/T/nexrender/nYsEfcbNSwYgTfVgUsln-/result.mp4 -RStemplate "Auguste Preview" -r /var/folders/7p/mqjfrnb967n28vzl_9p9j0_00000gp/T/nexrender/nYsEfcbNSwYgTfVgUsln-/nexrender-nYsEfcbNSwYgTfVgUsln--script.jsx

Could it be a permission problem ?

torresf avatar May 21 '24 18:05 torresf

It could be -RStemplate problem, at least judging by the generated line

inlife avatar May 21 '24 18:05 inlife

I tried without the -RStemplate option but I get the same result. Another info that might be useful : I have the same setup on Windows and it runs correctly with After Effects v24.

My guess is that it could come from node not having the right permission to run aerender as a child process on macOS or something like that.

torresf avatar May 21 '24 20:05 torresf

I fixed it 🎉 I needed to upgrade Node from v14 to v20, now everything works fine on latest macOS and After Effects version !

torresf avatar May 22 '24 09:05 torresf

Oh, great. Glad to hear that!

inlife avatar May 22 '24 10:05 inlife

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Jul 26 '24 02:07 stale[bot]