New error on restart - 'PHP UConverter class is missing'

[cont-init.d] 99-ttrss: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Tiny Tiny RSS was unable to start properly. This usually means a misconfiguration or an incomplete upgrade.

Please fix errors indicated by the following messages:

 * PHP UConverter class is missing, it's provided by the Internationalization (intl) module.

It’s a docker based install, and pulls from

Updating: Tiny Tiny RSS
From https://git.tt-rss.org/git/tt-rss
 * branch                HEAD       -> FETCH_HEAD
Already up to date.
Updating: Mobilize plugin
From https://github.com/sepich/tt-rss-mobilize
 * branch            HEAD       -> FETCH_HEAD
Already up to date.
Updating: FeedIron
From https://github.com/m42e/ttrss_plugin-feediron
 * branch            HEAD       -> FETCH_HEAD
Already up to date.
Updating: Feedly theme
From https://github.com/levito/tt-rss-feedly-theme
 * branch            HEAD       -> FETCH_HEAD

Upon starting.

Where is this class trying ot be called from? The main application or one of the themes?

I just found a commit from a few hours ago has:

// passed error message may contain invalid unicode characters, failing to insert an error here
+			// would break the execution entirely by generating an actual fatal error instead of a E_WARNING etc
+			$errstr = UConverter::transcode($errstr, 'UTF-8', 'UTF-8');
+			$context = UConverter::transcode($context, 'UTF-8', 'UTF-8');

Had the same error this morning after updating. I recompiled apache/PHP to include the Internationalization (Intl) PHP module and then everything returned to normal. I am not using any themes, just some very minor custom CSS to control image size/alignment.

How do you do that? (do you know the command?)

There might need to be a change made to the docker file I’m using to add that option.

My server is running cPanel so it has tools built into it to recompile apache and PHP. Not sure what you’d need to do in your case but it can’t be too hard to figure out with the right google search. “docker add php module” or something like that.

I was going to try it manually in the container first.

You don’t know the command or module that your cpanel added?

Ahh that’s it, in the container I just needed to apk add php7-intl and restart.

I meet the same problem.
My system is debian, after sudo apt-get install php7.0-intl and restart.
That’s ok.

The error message tells you what you need to do: Install the PHP intl module.

Sorry we can’t all be php genius’ right off the bat.

And even “install the php intl module” implies knowing how. But in the end we managed to figure it out about 11 hours ago.

I know nothing of php whatsoever. It has nothing to do with code or knowledge of the language or whatnot.

This points to a deeper problem: you need to learn how to do basic system administration tasks if you want to administer a server. Just trying to help here: there are plenty of good documentation, generally on the OS’s own page as to how to do that. I strongly suggest you spend the time to learn.

@coleadve thanks for the pointer to the code change

I don’t know whether this is considered outside of scope of the project, so appologies if it is: My scenario - running tt-rss on a mac using php 7.3.4 from the brew package manager. php -m lists intl as installed. However, this new UConverter test is failing for me. If I comment out the check in sanity_check.php everything works fine again.

Is there anything I can do to help resolve this, or is running tt-rss on a mac my own fault so I should just deal with it :slight_smile:

I don’t know, it took me a bit to figure out what package UConverter existed in, and then a bit more for getting in install in my environment.

Are there varying versions depending on your minor php version? ie, I think i was php 7.0, so installed php7-intl, you look like you’re a 7.3, is there a higher intl version needed. As you you can see from above I definitely wasn’t an expert.

Interesting - well according to info.php, I have intl icu version 64.2

@coleadve if you had a moment, could you check to see which version you have? Cheers

Also interesting: If I create just a standalone php script and run that check:
if (!class_exists(“UConverter”)
It works fine (ie passes the check and php confirms that the UConverter class is there.

So from that I think something else might be going on?

|Internationalization support|enabled|
|---|---|
|version|1.1.0|
|ICU version|59.1|
|ICU Data version|59.1|

so my version is newer - which would make sense I guess. I wonder if that’s the issue? Is anyone else in the thread ruinning php 7.3.x and seeing issues?

I just updated tt-rss, hadn’t done that in a few weeks. Installed php-intl. Haven’t noticed any problems so far.
PHP 7.3.5, ICU 64.2

Fixed my own issue by installing the module, but this seems like an unusually noticeable breaking change for tt-rss.

@Zeikzeil and @wn_name thanks for the info - so I guess it’s something specific to the mac platform then? If anyone has any pointers as to where I could look next, that would be most appreciated

I had the same error message plus found php7-intl was already installed. What I didn’t realize is apache was using php5. My debian system is rather old and has been through multiple upgrades. When php7 was installed at one of the upgrades, I missed removing php5. Now all is working fine. Hope this helps someone else.