Jump to content

Recommended Posts

Anthony Musgrove
Posted

Could you please confirm the OS / Linux flavor/version you're using to get these errors?  I'll see if I can replicate it here as well in a VM.  It may be something we can circumnavigate in the plugin core.  

 

Thank you

 

 

Deihmos
Posted
38 minutes ago, Anthony Musgrove said:

Could you please confirm the OS / Linux flavor/version you're using to get these errors?  I'll see if I can replicate it here as well in a VM.  It may be something we can circumnavigate in the plugin core.  

 

Thank you

 

 

Using Debian 13 Trixie AMD64. I also tried Ubuntu 26.04 and got the same error. 

  • Thanks 1
Anthony Musgrove
Posted (edited)

Okay great, I've replicated the issue.  

 

2026-05-24 07:35:41.161 Info Emby ScripterX: onPlaybackStart: START scripterx "Chrome Windows" 7 "Toy Story 3"
2026-05-24 07:35:41.163 Info Emby ScripterX: DEBUG SCRIPTERX PROCESS START
2026-05-24 07:35:41.166 Info Emby ScripterX: DEBUG SCRIPTERX PROCESS END
2026-05-24 07:35:41.188 Error Emby ScripterX: Error executing script '/home/scripterx/media/Scripts/playback.sh START scripterx "Chrome Windows" 7 "Toy Story 3"': bash: /opt/emby-server/lib/libc.so.6: version `GLIBC_2.38' not found (required by bash)
bash: /opt/emby-server/lib/libc.so.6: version `GLIBC_2.33' not found (required by bash)
bash: /opt/emby-server/lib/libc.so.6: version `GLIBC_2.36' not found (required by bash)
bash: /opt/emby-server/lib/libc.so.6: version `GLIBC_2.34' not found (required by bash)
bash: /opt/emby-server/lib/libc.so.6: version `GLIBC_2.33' not found (required by /lib/x86_64-linux-gnu/libtinfo.so.6)


So this is definitely an issue stemming from an Emby Core update, which is okay, Luke will look into it, I'm looking into how we can rectify on our side too.

Thank you for bringing this to my attention! 

Edit:  I must say, I've tested on Windows (latest server version) and on Windows everything is functioning correctly, so yes it's definitely some kind of environment issue(s).

 

Edited by Anthony Musgrove
Posted

And it only appears in the log when trying to run scripts?

Deihmos
Posted (edited)
48 minutes ago, Luke said:

And it only appears in the log when trying to run scripts?

That is correct. That's the only time it shows in the logs. No issues with 4.9.3.

 

Edited by Deihmos
Anthony Musgrove
Posted (edited)
3 hours ago, Luke said:

And it only appears in the log when trying to run scripts?

It appears so mate, only when the plugin is trying to use bash (executing anything) in the current execution environment,

 

Process proc = new Process();
proc.Start();


I will test a few more things today; I'll test with other interpreters like PHP binary etc.  I think it may have to do with the version of the GLIBC libraries that the newer servers are compiled with.

Thanks again!

Edited by Anthony Musgrove
updated for new information
Anthony Musgrove
Posted (edited)

So the same is occurring when trying to use php as the interpreter:

 

2026-05-24 23:27:57.558 Error Emby ScripterX: Error executing script '/home/scripterx/media/Scripts/playback.php START scripterx "Chrome Windows" 7 "Toy Story 3"': /usr/bin/php: /opt/emby-server/lib/libm.so.6: version `GLIBC_2.38' not found (required by /usr/bin/php)
/usr/bin/php: /opt/emby-server/lib/libm.so.6: version `GLIBC_2.29' not found (required by /usr/bin/php)

Part of log relevant:
 
2026-05-24 23:27:57.555 Info Emby ScripterX: onPlaybackStart: START scripterx "Chrome Windows" 7 "Toy Story 3"
2026-05-24 23:27:57.555 Info Emby ScripterX: DEBUG SCRIPTERX PROCESS START
2026-05-24 23:27:57.556 Info Emby ScripterX: DEBUG SCRIPTERX PROCESS END
2026-05-24 23:27:57.558 Error Emby ScripterX: Error executing script '/home/scripterx/media/Scripts/playback.php START scripterx "Chrome Windows" 7 "Toy Story 3"': /usr/bin/php: /opt/emby-server/lib/libm.so.6: version `GLIBC_2.38' not found (required by /usr/bin/php)
/usr/bin/php: /opt/emby-server/lib/libm.so.6: version `GLIBC_2.29' not found (required by /usr/bin/php)
/usr/bin/php: /opt/emby-server/lib/libm.so.6: version `GLIBC_2.35' not found (required by /usr/bin/php)
/usr/bin/php: /opt/emby-server/lib/libc.so.6: version `GLIBC_2.32' not found (required by /usr/bin/php)
/usr/bin/php: /opt/emby-server/lib/libc.so.6: version `GLIBC_2.29' not found (required by /usr/bin/php)
/usr/bin/php: /opt/emby-server/lib/libc.so.6: version `GLIBC_2.30' not found (required by /usr/bin/php)
/usr/bin/php: /opt/emby-server/lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/bin/php)
/usr/bin/php: /opt/emby-server/lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/bin/php)
/usr/bin/php: /opt/emby-server/lib/libc.so.6: version `GLIBC_2.38' not found (required by /usr/bin/php)
/usr/bin/php: /opt/emby-server/lib/libc.so.6: version `GLIBC_2.28' not found (required by /lib/x86_64-linux-gnu/libxml2.so.2)
/usr/bin/php: /opt/emby-server/lib/libc.so.6: version `GLIBC_2.33' not found (required by /lib/x86_64-linux-gnu/libxml2.so.2)
/usr/bin/php: /opt/emby-server/lib/libc.so.6: version `GLIBC_2.34' not found (required by /lib/x86_64-linux-gnu/libxml2.so.2)
/usr/bin/php: /opt/emby-server/lib/libm.so.6: version `GLIBC_2.29' not found (required by /lib/x86_64-linux-gnu/libxml2.so.2)
/usr/bin/php: /opt/emby-server/lib/libm.so.6: version `GLIBC_2.38' not found (required by /lib/x86_64-linux-gnu/libxml2.so.2)


OS:

scripterx@scripterx-dev:~/media/Scripts$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04.4 LTS
Release:        24.04
Codename:       noble


ScripterX Configuration:

image.thumb.png.e1dec1486dccdff954e6c8c0b6526fa6.png

 

Emby Server Version:

image.png.6b52c73ad1988bd139782de09d806e7c.png

Edited by Anthony Musgrove
added additional log
Anthony Musgrove
Posted

Note - I can solve it on the plugin side by setting the LD_LIBRARY_PATH environment variable prior to executing the process; ie:

proc.StartInfo.EnvironmentVariables["LD_LIBRARY_PATH"] = "/usr/local/lib";

however, I doubt this is going to be a secure or scalable solution.  I'll wait for your input to see if there's anything on your side (GLIBC library versions etc) that needs to be rectified.  If not, we will have to brainstorm a way to make this scalable, stable and secure.

Thanks again,

Anthony

Anthony Musgrove
Posted (edited)

I've just released v6.0.1.1 with temporary GLIBC fix to see how it scales.    I've restricted this release to Server v4.9.5.0+ so that it doesn't effect any older installations.

Feedback would be appreciated.  The fix simply sets LD_LIBRARY_PATH to /usr/local/lib if Plugin is running on anything apart from Windows.

 

Can confirm that updating my production environment to 6.0.1.1, it is now functioning again on Ubuntu Server:


Playback START : User: anthony on device Google Chrome Windows - media: [ID: 440] Cloudy with a Chance of Meatballs

Edited by Anthony Musgrove
GavinCampbell
Posted
4 minutes ago, Anthony Musgrove said:

I've just released v6.0.1.1 with temporary GLIBC fix to see how it scales.    I've restricted this release to Server v4.9.5.0+ so that it doesn't effect any older installations.

Feedback would be appreciated.  The fix simply sets LD_LIBRARY_PATH to /usr/local/lib if Plugin is running on anything apart from Windows.

 

Can confirm that updating my production environment to 6.0.1.1, it is now functioning again on Ubuntu Server:


Playback START : User: anthony on device Google Chrome Windows - media: [ID: 440] Cloudy with a Chance of Meatballs

I run Emby server in a docker container on Unraid.  Just installed 6.0.1.1 and can confirm that it is working again.

  • Like 1
TMCsw
Posted

Working fine now on Proxmox:

  • LXC Debian 13 with 4.9.5.0
  • LXC Debian 13 with 4.10.0.12

Just a thought, but perhaps it would be better to unset LD_LIBRARY_PATH  or  LD_LIBRARY_PATH="" as it's usually not set in most default shells (bash & sh anyway).

  • Like 1
Anthony Musgrove
Posted (edited)
19 minutes ago, TMCsw said:

Working fine now on Proxmox:

  • LXC Debian 13 with 4.9.5.0
  • LXC Debian 13 with 4.10.0.12

Just a thought, but perhaps it would be better to unset LD_LIBRARY_PATH  or  LD_LIBRARY_PATH="" as it's usually not set in most default shells (bash & sh anyway).

That's actually a good idea, I will do some testing.  Thank you

It seems to be working fine with LD_LIBRARY_PATH="", so I'll keep that for the next release, thank you again.

scripterx@scripterx-dev:~/media/Scripts$ tail playback_php.log

Playback: START : User scripterx on device Chrome Windows - media: (7) Toy Story 3


Code edit:

if(!Plugin.IsWindows())
   proc.StartInfo.EnvironmentVariables["LD_LIBRARY_PATH"] = "";

 

Edited by Anthony Musgrove
  • Like 1
Suliamu
Posted

My logs are filling up with those error reports since the last update to stable:
 

 *** Error Report ***
Version: 4.9.5.0
Command line: /opt/emby-server/system/EmbyServer.dll -programdata /var/lib/emby -ffdetect /opt/emby-server/bin/ffdetect -ffmpeg /opt/emby-server/bin/ffmpeg -ffprobe /opt/emby-server/bin/ffprobe -restartexitcode 3 -updatepackage emby-server-deb_{version}_amd64.deb
Operating system: Linux version 6.1.0-48-amd64 (debian-kernel@lists.debian.org) (gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP
OS/Process: x64/x64
Framework: .NET 8.0.25
Runtime: opt/emby-server/system/System.Private.CoreLib.dll
Processor count: 20
Data path: /var/lib/emby
Application path: /opt/emby-server/system
System.NullReferenceException: System.NullReferenceException: Object reference not set to an instance of an object.
at EmbyScripterX.Core.ScripterXContextFactory.Transcoding(PlayMethod playMethod, TranscodingInfo transcodingInfo)
at EmbyScripterX.EventManagers.ScripterXSessionManager._sessionManager_PlaybackProgress(Object sender, PlaybackProgressEventArgs e)
at MediaBrowser.Common.Events.EventHelper.TriggerAll[T](EventHandler`1 mainHandler, Object sender, T args, ILogger logger)
Source: EmbyScripterX
TargetSite: EmbyScripterX.Core.ScripterXEventContext Transcoding(MediaBrowser.Model.Session.PlayMethod, MediaBrowser.Model.Session.TranscodingInfo)

Is there something i should do to fix those? 

Anthony Musgrove
Posted
47 minutes ago, Suliamu said:

My logs are filling up with those error reports since the last update to stable:
 

 *** Error Report ***
Version: 4.9.5.0
Command line: /opt/emby-server/system/EmbyServer.dll -programdata /var/lib/emby -ffdetect /opt/emby-server/bin/ffdetect -ffmpeg /opt/emby-server/bin/ffmpeg -ffprobe /opt/emby-server/bin/ffprobe -restartexitcode 3 -updatepackage emby-server-deb_{version}_amd64.deb
Operating system: Linux version 6.1.0-48-amd64 (debian-kernel@lists.debian.org) (gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP
OS/Process: x64/x64
Framework: .NET 8.0.25
Runtime: opt/emby-server/system/System.Private.CoreLib.dll
Processor count: 20
Data path: /var/lib/emby
Application path: /opt/emby-server/system
System.NullReferenceException: System.NullReferenceException: Object reference not set to an instance of an object.
at EmbyScripterX.Core.ScripterXContextFactory.Transcoding(PlayMethod playMethod, TranscodingInfo transcodingInfo)
at EmbyScripterX.EventManagers.ScripterXSessionManager._sessionManager_PlaybackProgress(Object sender, PlaybackProgressEventArgs e)
at MediaBrowser.Common.Events.EventHelper.TriggerAll[T](EventHandler`1 mainHandler, Object sender, T args, ILogger logger)
Source: EmbyScripterX
TargetSite: EmbyScripterX.Core.ScripterXEventContext Transcoding(MediaBrowser.Model.Session.PlayMethod, MediaBrowser.Model.Session.TranscodingInfo)

Is there something i should do to fix those? 

Thank you @SuliamuI'll be releasing an update shortly to rectify that.  

  • Thanks 1
Anthony Musgrove
Posted

v6.0.1.2 - live now on Catalog

* Created permanent fix for server v4.9.5+ to address GLIBC issues  (LD_LIBRARY_PATH is now set to "" when processes/scripts are running in the Emby execution environment)
* Rectify transcoding null log entries issue

  • Thanks 2
Anthony Musgrove
Posted

** I've also added the EmbyScripterX.dll as a release on the project's GitHub, so that if you would like to test 6.0.1.2 on older releases of Emby Server you can, feel free to give feedback if you have any issues. 

 

Anthony Musgrove
Posted (edited)

Version 6.1.0.0 released on Catalog;

General

  • Added the following new events:
    • onPluginInstalled
    • onPluginUpdated
    • onPluginUninstalled
    • onPackageInstalling
    • onPackageInstalled 
    • onPackageInstallCancelled
    • onPackageInstallFailed
    • onRemoteControlDisconnected
       
  • Added the following new tokens to Session group:
    • %client%
    • %device.type%
    • %has.custom.device.name%
    • %last.activity.date%
    • %party.id%
    • %protocol%
    • %device.endpoint.ip%
    • %supports.remote.control%
    • %user.image.tag%
       
  • Added new subset of global tokens (available to all actions & events)
    • NetworkInformation
      • %remote.ip.addresses% - Comma separated string listing all remote IP addresses for the server.
      • %local.ip.addresses% - Comma separated string listing all local IP addresses for the server.
      • %mac.addresses% - Comma separated string listing all mac addresses for the server.
         
  • Reintroduced event:
    • onNetworkRemoteAddressChanged

 

This version (and all future versions released) will require emby server 4.9.5+, however I'll add the DLL file to the Releases page on GitHub incase anyone with an older server install wants to test it.

 

Some script examples for the new events:

package_installing.sh

#!/bin/bash

# Parameters expected: "%package.name%" "%package.version%" "%package.classification%" "%package.description%" "%package.checksum%" "%package.target.filename%" "%package.timestamp%" "%installation.id%" "%installation.name%" "%installation.version%" "%installation.update.class%"

echo Package Installing: [name: $1] [version: $2] [classification: $3] [desc: $4] [checksum: $5] [target filename: $6] [timestamp: $7] [installId: $8] [installName: $9] [installVersion: ${10}] [installUpdateClass: ${11}]  >> packages.log

package_installed.sh

#!/bin/bash

# Parameters expected: "%package.name%" "%package.version%" "%package.classification%" "%package.description%" "%package.checksum%" "%package.target.filename%" "%package.timestamp%" "%installation.id%" "%installation.name%" "%installation.version%" "%installation.update.class%" "%package.sourceurl%"

echo Package Installed: [name: $1] [version: $2] [classification: $3] [desc: $4] [checksum: $5] [target filename: $6] [timestamp: $7] [installId: $8] [installName: $9] [installVersion: ${10}] [installUpdateClass: ${11}] [sourceUrl: ${12}] >> packages.log

packages.log

Package Installing: [name: Emby Diagnostics] [version: 4.8.0.81] [classification: Release] [desc: Compatibility Update] [checksum: 79171208ef8012747367e2617d95e5f0] [target filename: Emby.DiagnosticsPlugin.dll] [timestamp: 4/11/2025 2:07:03 PM +00:00] [installId: 3e9cb5e5-403f-43ea-9f8c-2780db08b2ad] [installName: Emby Diagnostics] [installVersion: 4.8.0.81] [installUpdateClass: Release]
Package Installed: [name: Emby Diagnostics] [version: 4.8.0.81] [classification: Release] [desc: Compatibility Update] [checksum: 79171208ef8012747367e2617d95e5f0] [target filename: Emby.DiagnosticsPlugin.dll] [timestamp: 4/11/2025 2:07:03 PM +00:00] [installId: 3e9cb5e5-403f-43ea-9f8c-2780db08b2ad] [installName: Emby Diagnostics] [installVersion: 4.8.0.81] [installUpdateClass: Release] [sourceUrl: https://embydata.com/admin/service/packageFiles/Emby.DiagnosticsPlugin.dll_4.8.0.81.exe]

 

plugin_installed.sh

#!/bin/bash
# Parameters expected: "%package.name%" "%package.version%" "%package.sourceurl%" "%package.classification%" "%package.description%" "%package.checksum%" "%package.target.filename%" "%page.timestamp%"

echo Plugin Installed [Name: $1] [Version: $2] [SourceURL: $3] [Classification: $4] [Desc: $5] [Checksum: $6] [Target Filename: $7] [Timestamp: $8] >> plugins.log

plugin_uninstalled.sh

#!/bin/bash
# Parameters expected:   %plugin.id% "%plugin.name%" %plugin.version%

echo Plugin Uninstalled [Plugin ID: $1] [Name: $2] [Version: $3]  >> plugins.log

plugins.log

Plugin Installed [Name: Emby Diagnostics] [Version: 4.8.0.81] [SourceURL: https://embydata.com/admin/service/packageFiles/Emby.DiagnosticsPlugin.dll_4.8.0.81.exe] [Classification: Release] [Desc: Compatibility Update] [Checksum: 79171208ef8012747367e2617d95e5f0] [Target Filename: Emby.DiagnosticsPlugin.dll] [Timestamp: 4/11/2025 2:07:03 PM +00:00]
Plugin Uninstalled [Plugin ID: 2ea04f4b-a776-428e-9869-58e8e5b149c2] [Name: Diagnostics PlugIn] [Version: 4.8.0.81]

 

Network Information

%remote.ip.addresses%     %local.ip.addresses%    %mac.addresses%

[Remote IP Addresses: $6] [Local IP Addresses: $7] [MAC Addresses: $8] >> 
[Remote IP Addresses: 100.200.100.20] [Local IP Addresses: 192.168.1.40,fe80::a00:27ff:fe47:c18a%2,127.0.0.1,::1] [MAC Addresses: 08001148B2C4]

image.png.74df4b062f234d7a64d1e6b5a5a3e860.png

Please feel free to provide feedback, bugs, ideas, issues, etc.

Warmest regards,

Anthony

Edited by Anthony Musgrove
  • Thanks 1
Anthony Musgrove
Posted

And currently working on implementing these events for next release :-

 

image.png.8a2f25cd15155d5ed8578f58a17aa58e.png

  • Like 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...