[server] ERROR: Encoding error: java.lang.IllegalStateException: null WARN: Device disconnected

[x] I have read the FAQ.
[x] I have searched in existing issues.

Environment

OS: Windows 11
scrcpy version: 1.23
installation method: windows release
device model: Redmi Note 10 Pro
Android version: 12

scrcpy 1.23 <https://github.com/Genymobile/scrcpy>
C:\Users\Admin\Downloads\scrcpy-win64\scrcpy-ser...ed, 0 skipped. 16.1 MB/s (41123 bytes in 0.002s)
[server] INFO: Device: Xiaomi M2101K6G (Android 12)
INFO: Renderer: direct3d
INFO: Initial texture: 1080x2400
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
WARN: Device disconnected
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.IllegalStateException
        at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
        at android.media.MediaCodec.dequeueOutputBuffer(Unknown Source:9)
        at com.genymobile.scrcpy.ScreenEncoder.encode(ScreenEncoder.java:152)
        at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:102)
        at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:74)
        at com.genymobile.scrcpy.Server.scrcpy(Server.java:101)
        at com.genymobile.scrcpy.Server.main(Server.java:331)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(Unknown Source:24)
Press any key to continue . . .

that's all
i got 2 device
Redmi note 4x (it's work perfectly)
Redmi note 10 Pro (as the error above)
EDIT by @rom1v: It looks like a bug in MIUI 13. You'll have to wait until Xiaomi fixes the issue.
EDIT2: to fix the problem, upgrade to MIUI 13.0.12.

I added some logs. Could you replace this binary in v1.23 please, and post the output:

scrcpy-server sha256:479228ed980190367875078a9979426f6e9067d8a395d4250dcf0be2469a76c6

diff
diff --git a/server/src/main/java/com/genymobile/scrcpy/ScreenEncoder.java b/server/src/main/java/com/genymobile/scrcpy/ScreenEncoder.java
index e95896d3..8b2e8707 100644
--- a/server/src/main/java/com/genymobile/scrcpy/ScreenEncoder.java
+++ b/server/src/main/java/com/genymobile/scrcpy/ScreenEncoder.java
@@ -104,6 +104,7 @@ public class ScreenEncoder implements Device.RotationListener {
                     codec.stop();
                 } catch (IllegalStateException | IllegalArgumentException e) {
                     Ln.e("Encoding error: " + e.getClass().getName() + ": " + e.getMessage());
+                    Ln.i("downsizeOnError=" + downsizeOnError + "; firstFrameSent=" + firstFrameSent);
                     if (!downsizeOnError || firstFrameSent) {
                         // Fail immediately
                         throw e;
@@ -166,6 +167,8 @@ public class ScreenEncoder implements Device.RotationListener {
                     IO.writeFully(fd, codecBuffer);
                     if ((bufferInfo.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG) == 0) {
                         // If this is not a config packet, then it contains a frame
+                        if (!firstFrameSent)
+                            Ln.i("FIRST FRAME SENT");
                         firstFrameSent = true;
                     }
                 }

OK, thanks, that's what I thought.
So the encoder is able to produce one frame, then it fails… :( Maybe I should revert 2eb6fe7d81c15912a2252f229d317ae03f618a33.
Does it work if you execute scrcpy -m1024?

C:\Users\Admin\Downloads\scrcpy-win32-v1.23>scrcpy -d -m1024 scrcpy 1.23 <https://github.com/Genymobile/scrcpy> C:\Users\Admin\Downloads\scrcpy-win32-v1.23\scrc...ed, 0 skipped. 25.3 MB/s (61061 bytes in 0.002s) [server] INFO: Device: Xiaomi M2101K6G (Android 12) [server] INFO: FIRST FRAME SENT INFO: Renderer: direct3d INFO: Initial texture: 464x1024 [server] ERROR: Encoding error: java.lang.IllegalStateException: null [server] INFO: downsizeOnError=true; firstFrameSent=true WARN: Device disconnected [server] ERROR: Exception on thread Thread[main,5,main] java.lang.IllegalStateException         at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)         at android.media.MediaCodec.dequeueOutputBuffer(Unknown Source:9)         at com.genymobile.scrcpy.ScreenEncoder.encode(ScreenEncoder.java:153)         at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:102)         at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:74)         at com.genymobile.scrcpy.Server.scrcpy(Server.java:101)         at com.genymobile.scrcpy.Server.main(Server.java:331)         at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)         at com.android.internal.os.RuntimeInit.main(Unknown Source:24)
    still same got error lol..
    i tried to change encoder to
    --encoder 'c2.android.avc.encoder'
    --encoder 'OMX.google.h264.encoder'

but it's freeze frame

Does it work with screenrecord:
screenrecord /sdcard/file.mp4
adb pull /sdcard/file.mp4

?

C:\Users\Admin\Downloads\scrcpy-win32-v1.23>scrcpy --record file.mp4 -d
scrcpy 1.23 <https://github.com/Genymobile/scrcpy>
C:\Users\Admin\Downloads\scrcpy-win32-v1.23\scrc...ed, 0 skipped. 25.1 MB/s (61061 bytes in 0.002s)
[server] INFO: Device: Xiaomi M2101K6G (Android 12)
INFO: Renderer: direct3d
INFO: Initial texture: 1080x2400
[server] INFO: FIRST FRAME SENT
INFO: Recording started to mp4 file: file.mp4
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] INFO: downsizeOnError=true; firstFrameSent=true
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.IllegalStateException
        at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
        at android.media.MediaCodec.dequeueOutputBuffer(Unknown Source:9)
        at com.genymobile.scrcpy.ScreenEncoder.encode(ScreenEncoder.java:153)
        at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:102)
        at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:74)
        at com.genymobile.scrcpy.Server.scrcpy(Server.java:101)
        at com.genymobile.scrcpy.Server.main(Server.java:331)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(Unknown Source:24)
INFO: Recording complete to mp4 file: file.mp4
WARN: Device disconnected

C:\Users\Admin\Downloads\scrcpy-win32-v1.23>

did i use the right command?
 --record file.mp4

Sorry, I forgot adb shell:
adb shell screenrecord /sdcard/file.mp4
adb pull /sdcard/file.mp4

Microsoft Windows [Version 10.0.22000.493]
(c) Microsoft Corporation. All rights reserved.

C:\Users\Admin\Downloads\scrcpy-win32-v1.23>adb pull /sdcard/file.mp4
adb server version (39) doesn't match this client (41); killing...
* daemon started successfully
/sdcard/file.mp4: 1 file pulled, 0 skipped. 19.7 MB/s (1229492 bytes in 0.060s)

C:\Users\Admin\Downloads\scrcpy-win32-v1.23>adb shell screenrecord /sdcard/file.mp4
adb pull /sdcard/file.mp4

is it right? or im too dumb on this command? ahhahaha
i put the adb shell screenrecord /sdcard/file.mp4 1st
then nothing happen
and i put adb pull /sdcard/file.mp4 on next

anyway its pull the file, i can see file.mp4 on the folder

And it is correct? You can play it?

What's its resolution? Any logs when you record with screenrecord in your console?
If you reduce the definition even more?
scrcpy -m400

?
For some reason, your device encoder fails with the parameters scrcpy uses for encoding.

C:\Users\Admin\Downloads\scrcpy-win32-v1.23>scrcpy -m400
scrcpy 1.23 <https://github.com/Genymobile/scrcpy>
* daemon not running; starting now at tcp:5037
* daemon started successfully
C:\Users\Admin\Downloads\scrcpy-win32-v1.23\scrc...hed, 0 skipped. 2.5 MB/s (61061 bytes in 0.023s)
[server] INFO: Device: Xiaomi M2101K6G (Android 12)
[server] INFO: FIRST FRAME SENT
INFO: Renderer: direct3d
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] INFO: downsizeOnError=true; firstFrameSent=true
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.IllegalStateException
        at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
        at android.media.MediaCodec.dequeueOutputBuffer(Unknown Source:9)
        at com.genymobile.scrcpy.ScreenEncoder.encode(ScreenEncoder.java:153)
        at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:102)
        at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:74)
        at com.genymobile.scrcpy.Server.scrcpy(Server.java:101)
        at com.genymobile.scrcpy.Server.main(Server.java:331)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(Unknown Source:24)
INFO: Initial texture: 184x400
WARN: Device disconnected

C:\Users\Admin\Downloads\scrcpy-win32-v1.23>adb shell screenrecord /sdcard/file.mp4

C:\Users\Admin\Downloads\scrcpy-win32-v1.23>adb pull /sdcard/file.mp4
/sdcard/file.mp4: 1 file pulled, 0 skipped. 29.2 MB/s (206850495 bytes in 6.759s)

C:\Users\Admin\Downloads\scrcpy-win32-v1.23>

it's so sad on Redmi Note 10 Pro after update hahaha

You can play with the encoder settings: see https://github.com/Genymobile/scrcpy/issues/2819#issuecomment-976380273
Maybe you'll find what parameter your device does not like.

I have something similar when I try to mirror one of my Android devices:
scrcpy 1.23 https://github.com/Genymobile/scrcpy
C:\scrcpy\scrcpy-server: 1 file pushed, 0 skipped. 29.7 MB/s (41123 bytes in 0.001s)
adb.exe: error: more than one device and emulator
ERROR: "adb reverse" returned with value 1
WARN: 'adb reverse' failed, fallback to 'adb forward'
[server] INFO: Device: amltd TETON_P8303 (Android 5.0.2)
INFO: Renderer: direct3d
INFO: Initial texture: 800x480
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
WARN: Device disconnected
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.IllegalStateException
at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:1033)
at com.genymobile.scrcpy.ScreenEncoder.encode(ScreenEncoder.java:152)
at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:102)
at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:74)
at com.genymobile.scrcpy.Server.scrcpy(Server.java:101)
at com.genymobile.scrcpy.Server.main(Server.java:331)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:249)

same issue after update to android 12, any update?

I'm having the same issues after updating to MIUI 13 and Android 12, any fixes found?

I am having the same issue on Redmi Note 10, MIUI 13 and Android 12... I just downloaded the Win64 "zip" version from release section, connected USB cable and opened "scrcpy-noconsole.vbs". It shows the screen for 1 second and as soon as I interact, it closes out.
Checking the "scrcpy-console.bat" file gave me the exact same error as OP as well. Here's the screenshot:

Probably a bug in their custom ROM (for Android 12). Scrcpy works fine with other Android 12 devices.

I am having the same issue on Redmi Note 10, MIUI 13 and Android 12... I just downloaded the Win64 "zip" version from release section, connected USB cable and opened "scrcpy-noconsole.vbs". It shows the screen for 1 second and as soon as I interact, it closes out.
Checking the "scrcpy-console.bat" file gave me the exact same error as OP as well. Here's the screenshot:

me redmi note 10(mojit) xiaomi.eu miui13 also the same , cant use scrcpy anymore ..

It seems a lot of people are having issues with the encoder lately and can't use scrcpy anymore. Hope the author finds a fix.

Hope the author finds a fix.

I have currently no device with this ROM to reproduce, but I think the fix is to wait for Xiaomi to fix the bug in the latest version of their custom rom. :/

Hope the author finds a fix.

I have currently no device with this ROM to reproduce, but I think the fix is to wait for Xiaomi to fix the bug in the latest version of their custom rom. :/

What's sad about this is it's gonna take months before this gets fixed for RN10/Xiaomi users haha. Understandable on your side tho. Thanks for the efforts!

Hope the author finds a fix.

I have currently no device with this ROM to reproduce, but I think the fix is to wait for Xiaomi to fix the bug in the latest version of their custom rom. :/

As I said in another comment, this is happening to me right now on my Xiaomi Mi A1 but not with MUI. I'm using LineageOS 18.1 on this device. Before, on the same device, but with LineageOS 16.1, it was working fine.
I don't know if, and how, this information would help tho

Hope the author finds a fix.

I have currently no device with this ROM to reproduce, but I think the fix is to wait for Xiaomi to fix the bug in the latest version of their custom rom. :/

As I said in another comment, this is happening to me right now on my Xiaomi Mi A1 but not with MUI. I'm using LineageOS 18.1 (android 11) on this device. Before, on the same device, but with LineageOS 16.1 (android 9), it was working fine.
I don't know if, and how, this information would help tho

Ok, I don't know if I'm doing it well with github (not used on commenting here), but I'm managed to make it work.
I notice that, when using another encoder, scrcpy would just stop executing itself without any error :
scrcpy --encoder OMX.qcom.video.encoder.avc
Gave me this :
scrcpy 1.23 <https://github.com/Genymobile/scrcpy> C:\XXX\scrcpy-win64-v1.... file pushed, 0 skipped. 51.4 MB/s (41123 bytes in 0.001s) [server] INFO: Device: Xiaomi Mi A1 (Android 11) INFO: Renderer: direct3d INFO: Initial texture: 1080x1920
But nothing else.
But if I run scrcpy again (without any command parameter, just clicking scrcpy.exe) while the other instance is running, it works perfectly fine ! I have no idea why, but maybe that could help someone here.

still same problem but on android 12 based miui 13 redmi note 10 pro.
Microsoft Windows [Version 10.0.19044.1586]
(c) Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>scrcpy --encoder OMX.qcom.video.encoder.avc
scrcpy 1.22 https://github.com/Genymobile/scrcpy
D:\scrcpy-win64-v1.22\scrcpy-server: 1 file pushed, 0 skipped. 10.7 MB/s (40955 bytes in 0.004s)
[server] INFO: Device: Xiaomi M2101K6G (Android 12)
INFO: Renderer: direct3d
INFO: Initial texture: 1080x2400
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
WARN: Device disconnected
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.IllegalStateException
at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:3535)
at com.genymobile.scrcpy.ScreenEncoder.encode(ScreenEncoder.java:147)
at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:99)
at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:73)
at com.genymobile.scrcpy.Server.scrcpy(Server.java:100)
at com.genymobile.scrcpy.Server.main(Server.java:326)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:363)
C:\WINDOWS\system32>

I have the same problem, aunt. I hope to be able to solve it soon.
Thanks for the application is very good.

Just like what I said in the issue I opened prior to this, using scrcpy --encoder 'OMX.google.h264.encoder' works for a few frames then hangs. Is there anyway to refresh the frames every n seconds? I tried opening in Vysor and whenever I change the resolution, the frozen frame updates

i have the same problem. with my xiaomi redmi note 10 pro.... :(

Same issue, Redmi Note 8

Same problem, I have a Redmi Note 10 Pro.

Same problem Xiaomi redmi Note 10 Pro.
I don't know if this is related but when I do
adb logcat I get
03-24 13:27:15.113  2223  2440 E ThermalHalWrapper: Couldn't get temperatures because of HAL error: ThermalHAL not initialized properly.

Are you sure you have enabled USB Debugging (Security Settings)?

Working fine in Redmi Note 10 Pro (MIUI 12.5, Android 11)
After updating to MIUI <IP_ADDRESS>.SKFINXM getting java exception.
Environment

OS: macOS BigSur 11.1
Homebrew: 3.4.2
scrcpy: 1.23
Device: Redmi Note 10 Pro (MIUI 13)
Android version: 12
Android Studio: Bumblebee | 2021.1.1 Patch 2

scrcpy --verbosity=verbose
scrcpy 1.23 <https://github.com/Genymobile/scrcpy>
2022-03-24 19:53:48.931 scrcpy[7067:143613] DEBUG: ADB device found:
2022-03-24 19:53:48.931 scrcpy[7067:143613] DEBUG:     -->   (usb)  dfcd2d55                        device  M2101K6P
2022-03-24 19:53:48.931 scrcpy[7067:143613] DEBUG: Device serial: dfcd2d55
2022-03-24 19:53:48.931 scrcpy[7067:143613] DEBUG: Using server: /usr/local/Cellar/scrcpy/1.23/share/scrcpy/scrcpy-server
/usr/local/Cellar/scrcpy/1.23/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 50.2 MB/s (41123 bytes in 0.001s)
[server] INFO: Device: Xiaomi M2101K6P (Android 12)
2022-03-24 19:53:51.938 scrcpy[7067:143549] DEBUG: Server connected
2022-03-24 19:53:51.938 scrcpy[7067:143549] DEBUG: Starting controller thread
2022-03-24 19:53:51.938 scrcpy[7067:143549] DEBUG: Starting receiver thread
[server] DEBUG: Using encoder: 'OMX.qcom.video.encoder.avc'
2022-03-24 19:53:51.963 scrcpy[7067:143549] INFO: Renderer: metal
2022-03-24 19:53:51.964 scrcpy[7067:143549] DEBUG: Trilinear filtering disabled (not an OpenGL renderer)
2022-03-24 19:53:51.964 scrcpy[7067:143549] DEBUG: Using icon: /usr/local/Cellar/scrcpy/1.23/share/icons/hicolor/256x256/apps/scrcpy.png
2022-03-24 19:53:51.971 scrcpy[7067:143549] INFO: Initial texture: 1080x2400
2022-03-24 19:53:51.971 scrcpy[7067:143549] DEBUG: Starting demuxer thread
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] DEBUG: Device message sender stopped
2022-03-24 19:53:52.266 scrcpy[7067:144002] DEBUG: End of frames
[server] DEBUG: Controller stopped
2022-03-24 19:53:52.267 scrcpy[7067:143549] WARN: Device disconnected
2022-03-24 19:53:52.267 scrcpy[7067:143549] DEBUG: quit...
2022-03-24 19:53:52.267 scrcpy[7067:144001] DEBUG: Receiver stopped
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.IllegalStateException
	at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
	at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:3535)
	at com.genymobile.scrcpy.ScreenEncoder.encode(ScreenEncoder.java:152)
	at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:102)
	at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:74)
	at com.genymobile.scrcpy.Server.scrcpy(Server.java:101)
	at com.genymobile.scrcpy.Server.main(Server.java:331)
	at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
	at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:363)
2022-03-24 19:53:53.125 scrcpy[7067:143649] DEBUG: Server disconnected
2022-03-24 19:53:53.126 scrcpy[7067:143649] DEBUG: Server terminated

I tried scrcpy --encoder 'OMX.google.h264.encoder' then error not coming but screen not reflecting when doing something.

WORKING 9N REDMI NOTE 11 MIUI <IP_ADDRESS> (LATEST FEBRUARY PATCH) BUT ANDROID 11!

Make sure USB DEBUGGING SECURITY SETTINGS is enabled and also allow install via adb

Already done it brother

Then it's a bug with MIUI 13 + A12.
Because on my MIUI 13 + A11, it works.

For MIUI 13 users who just updated, has anyone tried doing a reset then retrying scrcpy? A lot of users had a lot of software bugs after update and somewhat fixed it by resetting. I'm not sure if that can fix scrcpy bug for us.
@rom1v Also, does adb debugging work on recovery screen(where you can reboot, wipe data, etc)? Does the adb simulated touches work there? How about OTG mouse? Thanks!

are we all experiencing this problem running miui 13 global android 12 or even the miui 13 eu on android 12 still giving same issues, anyone who has tried the miui 13 eu on android 12, what is the experience running scrcpy?

Hi,
I have the same problem on:
Redmi Note 10 pro
MUI 13 + Android 12
Host: linux /debian
scrcpy: 1.23
It dies directly if I the default encoder. If I use --encode OMX.google.h264.encoder it runs bit after 2 refresh the screen is not refreshing but mouse still works...

Hello,
I seem to experience the same problem, but only with one of my devices:

Motorola G6
LineageOS 18.1 (Android 11)
Host: linux/Fedora 35
scrcpy 1.23

$ scrcpy
scrcpy 1.23 <https://github.com/Genymobile/scrcpy>
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed. 0.6 MB/s (41123 bytes in 0.064s)
[server] INFO: Device: motorola moto g(6) (Android 11)
INFO: Renderer: opengl
INFO: OpenGL version: 3.0 Mesa 20.0.8
INFO: Trilinear filtering enabled
INFO: Initial texture: 1080x2160
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m1920...
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m1600...
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m1280...
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m1024...
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m800...
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.IllegalStateException
	at android.media.MediaCodec.releaseOutputBuffer(Native Method)
	at android.media.MediaCodec.releaseOutputBufferInternal(MediaCodec.java:3568)
	at android.media.MediaCodec.releaseOutputBuffer(MediaCodec.java:3489)
WARN: Device disconnected
	at com.genymobile.scrcpy.ScreenEncoder.encode(ScreenEncoder.java:174)
	at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:102)
	at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:74)
	at com.genymobile.scrcpy.Server.scrcpy(Server.java:101)
	at com.genymobile.scrcpy.Server.main(Server.java:331)
	at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
	at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:399)
WARN: Killing the server...

My Lenovo tablet has no issue with scrcpy, whatsoever:

Lenovo M10
LineageOS 17.1 (Android 10, GSI)
Host: linux/Fedora 35
scrcpy 1.23

$ scrcpy
scrcpy 1.23 <https://github.com/Genymobile/scrcpy>
* daemon not running; starting now at tcp:5037
* daemon started successfully
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed. 0.5 MB/s (41123 bytes in 0.080s)
[server] INFO: Device: unknown unknown (Android 10)
INFO: Renderer: opengl
INFO: OpenGL version: 3.0 Mesa 20.0.8
INFO: Trilinear filtering enabled
INFO: Initial texture: 1200x1920
WARN: Device disconnected

How can I help any further?
Thanks,
FWieP

Is this fixed finally? I have a Miui 12.5 phone which is asking me to update to Miui 13 with Android 12 but I'm holding it because this issue with scrcpy because I use it a lot.

Is this fixed finally? I have a Miui 12.5 phone which is asking me to update to Miui 13 with Android 12 but I'm holding it because this issue with scrcpy because I use it a lot.

Can confirm this issue isn't fixed as of today.
Do not update.

this issue still exist in Redmi Note 10 Pro. MIUI 13 Android 12. so sad

Still not working, did anyone found a fix?

Which version of MIUI have you installed? I was on <IP_ADDRESS>. Does someone have the same issue with <IP_ADDRESS> or <IP_ADDRESS>?

yes, <IP_ADDRESS> on RN 10Pro seems to carry the day with this issue AND NO OTHER SCREEN MIRRORING APP SEEMS TO WORK, VIA USB OR WIRELESS.

Asus rog phone 5 updated to android 12 and I get the same error

@Kleinish That is not the same error. Yours is #3139 and just requires to update scrcpy to a version >= 1.18 (just upgrade to the latest).

Same error occurs on Redmi Note 10 Pro Max (sweetinpro) with Android 12, MIUI v<IP_ADDRESS> Global Stable as of today (23-04-22).
Using c2.android.avc.encoder or OMX.google.h264.encoder gives a frozen snapshot of the screen and OMX.qcom.video.encoder.avc fails with the exception.

Same error occurs on Redmi Note 10 Pro Max (sweetinpro) with Android 12, MIUI v<IP_ADDRESS> Global Stable as of today (23-04-22).
Using c2.android.avc.encoder or OMX.google.h264.encoder gives a frozen snapshot of the screen and OMX.qcom.video.encoder.avc fails with the exception.
This works perfectly:
adb shell screenrecord /sdcard/file.mp4
adb pull /sdcard/file.mp4

The reproduced file's resolution is 1800x2400 pixels, bitrate is 13416 kbps and frame rate - 31.32 frames/second. I also tried wireless mode.

I've seen from other users that a lot of system bugs in RN10P got fixed from doing Wipe Data Reset. Can you check if it would fix this issue?

Tried again this time on my Linux machine and the result is the same.
scrcpy 1.23 <https://github.com/Genymobile/scrcpy> /usr/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 243.8 MB/s (41123 bytes in 0.000s) [server] INFO: Device: Xiaomi M2101K6G (Android 12) INFO: Renderer: opengl INFO: OpenGL version: 3.1 Mesa 22.0.2 INFO: Trilinear filtering enabled INFO: Initial texture: 1080x2400 [server] ERROR: Encoding error: java.lang.IllegalStateException: null WARN: Device disconnected [server] ERROR: Exception on thread Thread[main,5,main] java.lang.IllegalStateException         at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)         at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:3535)         at com.genymobile.scrcpy.ScreenEncoder.encode(ScreenEncoder.java:152)         at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:102)         at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:74)         at com.genymobile.scrcpy.Server.scrcpy(Server.java:101)         at com.genymobile.scrcpy.Server.main(Server.java:331)         at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)         at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:363)

I've seen from other users that a lot of system bugs in RN10P got fixed from doing Wipe Data Reset. Can you check if it would fix this issue?
I really hope we won't have to do that as a workaround.

I know nothing about android debugging. But can provide with debug info if needed. Just ask.

Dont waste your Time. This is unsolvable for Redmi with MIUI 13. Wait for the redmi to fix this problem.
To pause the screen you can paste this command to your command prompt:
scrcpy --encoder 'OMX.google.h264.encoder'
It will freeze your first frame on the window screen but won't be able to use it.

I've seen from other users that a lot of system bugs in RN10P got fixed from doing Wipe Data Reset. Can you check if it would fix this issue?

Sadly, a reset didn't fix the issue @vielavlrs

Same error occurs on Redmi Note 10 Pro Max (sweetinpro) with Android 12, MIUI v<IP_ADDRESS> Global Stable as of today (23-04-22).
Using c2.android.avc.encoder or OMX.google.h264.encoder gives a frozen snapshot of the screen and OMX.qcom.video.encoder.avc fails with the exception.
This works perfectly:
adb shell screenrecord /sdcard/file.mp4
adb pull /sdcard/file.mp4

The reproduced file's resolution is 1800x2400 pixels, bitrate is 13416 kbps and frame rate - 31.32 frames/second. I also tried wireless mode.

I don't know much about Android OS internals, however this issue might be related to the kernel of the device. Here's my experience:

Installing crDroid 8.4 ROM didn't fix the issue.

This ROM doesn't use a custom kernel. AFAIK.
Tried 12.5.10 as well as 13.0.3 firmware.

Installing PixelOS with 12.5.10 firmware fixed the issue.

This ROM uses Vantom Kernel.

would downgrading back to 12.5.9 work?

downgrading to MIUI 12.5 does work in fact. Both — Xiaomi.EU as well as the official stock ROM work fine with scrcpy in that case. @vielavlrs

I'm on MIUI 12.5 right now so can't give MIUI 13 logs. But here's a logcat dump (starting right before running scrcpy) on crDroid 8.4 (A12) on my sweetin device if anyone wants to take a look at it. Like previously stated, AFAIK crDroid uses stock kernel and firmware.

I downgraded to 12.5 based on Android 11 and Scrcpy, Windows Connect etc
work fine now, hope Next Miu 13 would have fixed the issues
On Thu, 5 May 2022, 21:37 Aniket Teredesai, @.***>
wrote:

I'm on MIUI 12.5 right now so can't give MIUI 13 logs. But here's
https://github.com/Genymobile/scrcpy/files/8633759/sweetin.media.encoder.crash.with.scrcpy.log
a logcat dump (starting right before running scrcpy) on crDroid 8.4 (A12)
on my sweetin device if anyone wants to take a look at it. Like
previously stated, AFAIK crDroid uses stock kernel and firmware.
—
Reply to this email directly, view it on GitHub
https://github.com/Genymobile/scrcpy/issues/3051#issuecomment-1118923660,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AWQAWADI6GKH4UIXRB4J4WDVIQIPZANCNFSM5PDZWLRA
.
You are receiving this because you commented.Message ID:
@.***>

It seems like MIUI 13 has an issue with the scrcpy's default encoder OMX.qcom.video.encoder.avc.
scrcpy not crash with other two encoders, they are -

scrcpy --encoder 'OMX.google.h264.encoder'
scrcpy --encoder 'c2.android.avc.encoder'

With those, you can control the device but it will freeze on the first frame.
But with  default encoder  scrcpy --encoder 'OMX.qcom.video.encoder.avc',
java server throw error Encoding error: java.lang.IllegalStateException: null and crash with the same java exception
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
2022-05-09 10:34:39.879 scrcpy[29316:119119] WARN: Device disconnected
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.IllegalStateException
	at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
	at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:3535)
	at com.genymobile.scrcpy.ScreenEncoder.encode(ScreenEncoder.java:152)
	at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:102)
	at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:74)
	at com.genymobile.scrcpy.Server.scrcpy(Server.java:101)
	at com.genymobile.scrcpy.Server.main(Server.java:335)
	at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
	at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:363)

I also have the same problem with Note 10 Pro but with Arrow OS, Android 12.1. It should be as close as possible to AOSP but still having the same issue.

I got same issue with a Panasonic FZ-A2A, Android 6.0.1 😅
$ scrcpy
scrcpy 1.24 <https://github.com/Genymobile/scrcpy>
C:\scrcpy-win64-v1.24\scrcpy-server: 1 file pushed, 0 skipped. 42.4 MB/s (41159 bytes in 0.001s)
[server] INFO: Device: PANASONIC FZ-A2A (Android 6.0.1)
INFO: Renderer: direct3d
INFO: Initial texture: 1920x1200
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
WARN: Device disconnected
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.IllegalStateException
        at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
        at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2379)
        at com.genymobile.scrcpy.ScreenEncoder.encode(ScreenEncoder.java:152)
        at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:102)
        at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:74)
        at com.genymobile.scrcpy.Server.scrcpy(Server.java:101)
        at com.genymobile.scrcpy.Server.main(Server.java:335)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:251)

Scrcpy window freezes with scrcpy --encoder 'OMX.google.h264.encoder' and scrcpy --encoder 'OMX.google.h264.encoder' in Redmi Note 10 pro max (M2101K6I), ANDROID v- 12 SKQ1.210908.001, MIUI v- 13.0.4

Try this

scrcpy --encoder 'OMX.google.h264.encoder'

It works for me

It works for me

What MIUI version are you running? @syarfandi
MIUI 12 (A11) doesn't have the issue.
MIUI 13 (A12), however, is a different story. I (as well as several others) have noticed that using an alternative encoder works for a handful of frames but then only the remote input keeps working.

Scrcpy window freezes with scrcpy --encoder 'OMX.google.h264.encoder' and scrcpy --encoder 'OMX.google.h264.encoder' in Redmi Note 10 pro max (M2101K6I), ANDROID v- 12 SKQ1.210908.001, MIUI v- 13.0.4

It's a known observation @JapneetSingh-28

I got same issue with a Panasonic FZ-A2A, Android 6.0.1

Your issue most likely doesn't belong to this thread @TLJurek. This thread's tracking the issue brought upon by some kind of a misconfiguration in Xiaomi's MIUI 13 for specific devices.

I also have the same problem with Note 10 Pro but with Arrow OS, Android 12.1. It should be as close as possible to AOSP but still having the same issue.

Interesting. I didn't have a problem with PixelOS @mutlucan96. It uses the Vantom Kernel and the MIUI vendor.

What MIUI version are you running? @syarfandi
@icy-comet I use Android 12 custom rom, just try it, if it not try this
scrcpy --encoder 'OMX.MTK.VIDEO.ENCODER.AVC'

C:\temp\scrcpy-win64-v1.24>scrcpy --encoder 'OMX.MTK.VIDEO.ENCODER.AVC'
scrcpy 1.24 https://github.com/Genymobile/scrcpy
C:\temp\scrcpy-win64-v1.24\scrcpy-server: 1 file pushed, 0 skipped. 57.6 MB/s (41159 bytes in 0.001s)
[server] INFO: Device: Xiaomi M2101K6G (Android 12)
[server] ERROR: Exception on thread Thread[main,5,main]
com.genymobile.scrcpy.InvalidEncoderException: There is no encoder having name 'OMX.MTK.VIDEO.ENCODER.AVC"
at com.genymobile.scrcpy.ScreenEncoder.createCodec(ScreenEncoder.java:222)
at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:83)
at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:74)
at com.genymobile.scrcpy.Server.scrcpy(Server.java:101)
at com.genymobile.scrcpy.Server.main(Server.java:335)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:363)
[server] ERROR: Try to use one of the available encoders:
[server] ERROR:     scrcpy --encoder 'OMX.qcom.video.encoder.avc'
[server] ERROR:     scrcpy --encoder 'c2.android.avc.encoder'
[server] ERROR:     scrcpy --encoder 'OMX.google.h264.encoder'
INFO: Renderer: direct3d
INFO: Initial texture: 1080x2400
WARN: Device disconnected

C:\temp\scrcpy-win64-v1.24>scrcpy --encoder 'OMX.MTK.VIDEO.ENCODER.AVC' scrcpy 1.24 https://github.com/Genymobile/scrcpy C:\temp\scrcpy-win64-v1.24\scrcpy-server: 1 file pushed, 0 skipped. 57.6 MB/s (41159 bytes in 0.001s) [server] INFO: Device: Xiaomi M2101K6G (Android 12) [server] ERROR: Exception on thread Thread[main,5,main] com.genymobile.scrcpy.InvalidEncoderException: There is no encoder having name 'OMX.MTK.VIDEO.ENCODER.AVC" at com.genymobile.scrcpy.ScreenEncoder.createCodec(ScreenEncoder.java:222) at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:83) at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:74) at com.genymobile.scrcpy.Server.scrcpy(Server.java:101) at com.genymobile.scrcpy.Server.main(Server.java:335) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:363) [server] ERROR: Try to use one of the available encoders: [server] ERROR: scrcpy --encoder 'OMX.qcom.video.encoder.avc' [server] ERROR: scrcpy --encoder 'c2.android.avc.encoder' [server] ERROR: scrcpy --encoder 'OMX.google.h264.encoder' INFO: Renderer: direct3d INFO: Initial texture: 1080x2400 WARN: Device disconnected

Try these all :
scrcpy --encoder 'OMX.qcom.video.encoder.avc'
scrcpy --encoder 'c2.android.avc.encoder'
scrcpy --encoder 'OMX.google.h264.encoder'

Try these all, each:

As stated earlier, none of the available encoders work with the stock ROM.
Besides, OMX.MTK.VIDEO.ENCODER.AVC is not one of the encoders available to use with the sweetin device.

I use Android 12 custom rom
You mind sharing what custom ROM do you use? And what vendor and kernel does it use? @syarfandi
As per my tests, PixelOS is the only A12 ROM that works with scrcpy for sweet and sweetin devices.

scrcpy --encoder 'OMX.qcom.video.encoder.avc'
Result: crash
scrcpy --encoder 'c2.android.avc.encoder'
scrcpy --encoder 'OMX.google.h264.encoder'
Result: starts, but freezes screen (no update or refresh)

I'm also facing similar issues as @Gradius2 has reported.

will xiaomi even fix this? i mean, it'd be nice if they gave some attention to it, but until now nothing's been done and i dont really know how to downgrade to miui 12.5

Any fixes from either side? Having this issue with my Xiaomi Redmi Note 10 Pro.

I'm also having this exact issue with my Xiaomi Mi A1 (codename tissot). I have used scrcpy in the past and it worked. I don't know exactly when I last used it but today I noticed it wouldn't work anymore.
I'm running the custom ROM "crDroid" version 7.17 (Android 11) and I'm using scrcpy 1.24 (the most recent version as of writing this).

This is so sad all redmi note 10 pro after updates it makes scrcpy stop functioning, hope a solution soon.

I have a Redmi Note 10 Pro (codename 'sweet') running a Android 12 custom ROM (CrDroid).
As another commented reported, this issue might be caused by the kernel this ROM ships with, but I haven't had the time to try a different kernel yet.
@rom1v If you have any ideas that might help fix this, I'm happy to test them on my device and provide the relevant logcats and debug info.

Also using Xiaomi redmi note 10 pro and scrcpy is not working now. i also have issues on its camera even before the update. annoying

scrcpy --encoder 'OMX.qcom.video.encoder.avc'
Result: crash
scrcpy --encoder 'c2.android.avc.encoder' scrcpy --encoder 'OMX.google.h264.encoder'
Result: starts, but freezes screen (no update or refresh)

Exact same problem :(
(I love you rom1v 🧡💚💙)

Is there any avaliable fix? I'm also encountering Encoder failed (err=-38) on my Xiaomi Redmi Note 9T, but it seems that both stock MIUI and statixos 5.1, which is closer to AOSP, have the same problem.

I'm still facing this issue too, hope Genymobile or the contributors find a solution soon

Estou com o mesmo problema no redmi note 10 pro. Tanto no scrcpy como nos outros apps de controle. Espero que o autor resolva

it is weird that I didn't have this problem until I reinstall my ubuntu. Same hardware and same phone. Just ubuntu reinstalled. I don’t know what I installed in the previous ubuntu.

There is NO need to complain here.  Everybody with this problem, should send e-mail directly to Xiaomi.
Is THEIR responsibility.

it is weird that I didn't have this problem until I reinstall my ubuntu. Same hardware and same phone. Just ubuntu reinstalled. I don’t know what I installed in the previous ubuntu.

You probably get an upgrade on the phone. The error occurs on the device, and the client operating system has no impact on it.

There is NO need to complain here. Everybody with this problem, should send e-mail directly to Xiaomi.
Is THEIR responsibility to fix it.

Sorry, but I am not complaining about it. and my phone is a Huawei device and never upgrade years ago. maybe there is something wrong with my ubuntu environment. I am still working on it.

Having the same issue with a modern Samsung device here, so yeah, probably not something unique to Xiaomi.

Alright, I got it fixed on my end, just had to build it myself from GitHub (master branch, commit ed84e18b), and it appears to be working just fine now.

Try this
scrcpy --encoder 'OMX.google.h264.encoder'
It works for me

I just did it and it worked. I'm very grateful for that. Many blessings to you

Try this
scrcpy --encoder 'OMX.google.h264.encoder'
It works for me

I just did it and it worked. I'm very grateful for that. Many blessings to you

yes, plz help, I'm stuck in this ~
and I'm sweeping the internet for this issue and looking this issue(github) since feb
I'm using note 10 pro, and it just do not work!

i try run CMD, type scrcpy --encoder 'OMX.google.h264.encoder' on the correct scrcpy folder, it connect my redmi note 10 pro, but freezes after 1 frame. What am i doing wrong?

Same issue for me, on Debian testing with a Redmi 7A (LineageOS 18.1/Android 11).
The thing is that it was working fine a month ago and there were no updates on the phone (same ROM and kernel for more than 6 months, no updates) or on scrcpy (I was still on 1.23 yesterday and I tried 1.24 now).
So is it an update of the ADB tools or some other dependencies?

I tried without options or with a lot of custom settings.
If I open the scrpy window in a hidden workspace it will crash when I open this workspace.
If I open it in the current workspace It crash after 1 second of inactivity or if I am active it may keep up 5-10sec.

The debug always end like that:
DEBUG: Receiver stopped
DEBUG: End of frames
DEBUG: Server disconnected
DEBUG: Server terminated
WARN: Device disconnected
DEBUG: quit...

In the logcat there is a lot of errors:
07-26 12:48:04.010 27752 27752 E libc    : Access denied finding property "persist.device_config.runtime_native_boot.profilebootclasspath"
07-26 12:48:04.010 27752 27752 E libc    : Access denied finding property "persist.device_config.runtime_native_boot.enable_apex_image"
07-26 12:48:04.010 27752 27752 E libc    : Access denied finding property "persist.device_config.runtime_native_boot.disable_lock_profiling"
07-26 12:48:04.010 27752 27752 E libc    : Access denied finding property "persist.device_config.runtime_native_boot.enable_generational_cc"
07-26 12:48:04.011 27752 27752 E cutils-trace: Error opening trace file: No such file or directory (2)
07-26 12:48:04.212  1460  1460 E perfetto: probes_producer.cc:333  Cannot stop data source id=264, not found
07-26 12:48:04.225  2216 20231 E Parcel  : Attempt to read from protected data in Parcel 0x74ab424950
07-26 12:48:04.225  2216 20231 E Parcel  : Attempt to read from protected data in Parcel 0x74ab424950
07-26 12:48:04.225  2216 20231 E Parcel  : Expecting header 0x53595354 but found 0x0. Mixing copies of libbinder?
07-26 12:48:04.300  1556  3481 E OMXNodeInstance: setParameter(0xeac040a4:qcom.encoder.avc, OMX.google.android.index.allocateNativeHandle(0x7f00005d): Input:0 en=0) ERROR: UnsupportedSetting(0x80001019)
07-26 12:48:04.301  1556  3976 E OMXNodeInstance: setParameter(0xeac040a4:qcom.encoder.avc, OMX.google.android.index.allocateNativeHandle(0x7f00005d): Output:1 en=0) ERROR: UnsupportedSetting(0x80001019)
07-26 12:48:04.324  1556  3976 E OMXNodeInstance: getConfig(0xeac040a4:qcom.encoder.avc, ConfigLatency(0x6f800005)) ERROR: UnsupportedIndex(0x8000101a)
07-26 12:48:04.328  1556 26344 E OMXNodeInstance: getConfig(0xeac040a4:qcom.encoder.avc, ??(0x7f000062)) ERROR: UnsupportedSetting(0x80001019)
07-26 12:48:04.330  1556 21264 E OMXNodeInstance: getParameter(0xeac040a4:qcom.encoder.avc, ParamConsumerUsageBits(0x6f800004)) ERROR: UnsupportedIndex(0x8000101a)
07-26 12:48:04.332  1556  3481 E OMXNodeInstance: getParameter(0xeac040a4:qcom.encoder.avc, ParamConsumerUsageBits(0x6f800004)) ERROR: UnsupportedIndex(0x8000101a)
07-26 12:48:04.395 27752 27777 E cutils-trace: Error opening trace file: No such file or directory (2)
07-26 12:48:04.483 27771 27771 E libc    : Access denied finding property "persist.device_config.runtime_native_boot.profilebootclasspath"
07-26 12:48:04.483 27771 27771 E libc    : Access denied finding property "persist.device_config.runtime_native_boot.enable_apex_image"
07-26 12:48:04.483 27771 27771 E libc    : Access denied finding property "persist.device_config.runtime_native_boot.disable_lock_profiling"
07-26 12:48:04.483 27771 27771 E libc    : Access denied finding property "persist.device_config.runtime_native_boot.enable_generational_cc"
07-26 12:48:04.484 27771 27771 E cutils-trace: Error opening trace file: No such file or directory (2)
07-26 12:48:05.106  2216 20231 E LightsService: Light requested not available on this device. 2
07-26 12:48:05.392  2216  2558 E LightsService: Light requested not available on this device. 2
07-26 12:48:05.392  1313  1313 E QTI PowerHAL: Failed to acquire lock.
07-26 12:48:06.565  1313  1313 E QTI PowerHAL: Failed to acquire lock.
07-26 12:48:07.504  1556 26344 E OMXNodeInstance: !!! Observer died. Quickly, do something, ... anything...
07-26 12:48:07.505  1552  9299 E mediaserver: unlinkToDeath: removed reference to death recipient but unlink failed.
07-26 12:48:07.505  1552  9299 E IPCThreadState: attemptIncStrongHandle(1): Not supported
07-26 12:48:12.870  2216 17482 E LightsService: Light requested not available on this device. 2

Resolved for me. It was the USB cable.
I recently changed the cable because the old one was not charging correctly.
But apparently the new one loose connectivity with ADB many every 2-3 sec... it does not disconnect network sharing, so I did not identify it faster.
Buying a quality USB cable is becoming a lottery.

uild it myself from GitHub (master branch, commit ed84e18), and it appears to be working just fine now.

hey bro care to share your built?

scrcpy --encoder 'c2.android.avc.encoder'
scrcpy --encoder 'OMX.google.h264.encoder'

Open the screen, but the screen doesn't update after the first frame. However, the phone remains controllable.
scrcpy --encoder 'OMX.qcom.video.encoder.avc'
Directly leads to crash

scrcpy --encoder 'c2.android.avc.encoder'
scrcpy --encoder 'OMX.google.h264.encoder'

Open the screen, but the screen doesn't update after the first frame. However, the phone remains controllable.
scrcpy --encoder 'OMX.qcom.video.encoder.avc' Directly leads to crash
I'm on Android 12, MIUI 13

I have the same issue..
Please help

same issue

same issue, with android 9 on Samsung S8.

Anyupdate on this issue, tried every encoder even Android 12 Custom Roms aren't working for Redmi note 10 pro..

It looks like Android 12 is the end of the line for scrcpy
https://www.androidpolice.com/how-to-take-a-screenshot-in-android-when-an-app-doesnt-want-you-to/
FLAG_SECURE is a window level flag in Android ecosystem that allows mobile apps to safeguard their content from a screenshot capture.

@entomoio Since Android 12, scrcpy continues to work, butbcould not mirror "protected" screens anymore. See #2129.

Hi guys, there is an update on this.
I have just got a security update on my Xiaomi Note 10 Pro and scrcpy started working!
MIUI 13 Global <IP_ADDRESS> Stable.

I can confirm that on Xiaomi Note 10 Pro with MIUI-V<IP_ADDRESS>.SKFEUXM it works.

I can confirm that on Xiaomi Note 10 Pro with MIUI-V<IP_ADDRESS>.SKFEUXM it works.

The last update for me is V<IP_ADDRESS>.SKFEUXM. Since when did you have that version?

The last update for me is V<IP_ADDRESS>.SKFEUXM. Since when did you have that version?
You can download the latest OTA package (<IP_ADDRESS> -> <IP_ADDRESS>) and install it.
Here you can find how to do it:
https://xiaomiui.net/how-to-install-miui-updates-manually-early-1714

I followed the instructions of the link but it throwd me an error when selecting the downloaded package.

People with xiaomi redmi 10 on Global Rom make us know if you fixed the issue.

I'm using 13.0.12 MIUI EU and now is working, thank god!!

I can also confirm that updating to 13.0.12 (from 13.0.8) makes it work again

Please how to get 13.0.12 update on glabal rom, i've been dead waiting for update.

How to get the update on Redmi Note 10 Pro Max India? I didn't found any more recent ROM than my current ROM.

YES!!! I'm so happy, with latest update MIUI 13.0.12 works like a charm...

yup updated and it works again, wish they enable option to cast netflix and disney plus via scrcpy too

manoaratefy

Unfortunately RN10 Pro Max India has not receive the update the lastest update is <IP_ADDRESS> :/

In 13.0.13 works perfectly again :D At last!

Hi guys, there is an update on this.
I have just got a security update on my Xiaomi Note 10 Pro and scrcpy started working!
MIUI 13 Global <IP_ADDRESS> Stable.

Indeed! Xiaomi.eu 13.0.12 for sweet and sweetin devices fixes the bug as well. @dmytromarchuk
What would be the right action for the GH issue here @rom1v? The bug clearly resided on Xiaomi's side and is being fixed with OTA updates. Should the issue be closed?

How to push update  on Global rom 13.0.9 to update 13.0.12

HI. Sorry, I know this issue is already closed but does anyone have a workaround for this? Because I have Redmi Note 10 Pro Max (India) and the latest MIUI here is the 13.0.5. And it's been a while since we received an update from Xiaomi.
When I run scrcpy the phone's screen pops up and then closes in just some milliseconds, just the first frame is rendered I think, and then I get this encoding error.

How to push update on Global rom 13.0.9 to update 13.0.12

does anyone have a workaround for this? ... it's been a while since we received an update from Xiaomi.

This applies to all Xiaomi/Redmi devices affected
Check xiaomifirmwareupdater.com for official updates, if any. Sometimes the MIUI updater just doesn't push them to you.
If there is no official update and you are comfortable tinkering with the device, an alternative would be to use custom ROMs, especially Xiaomi.eu ROM if you like how MIUI does things and want a stable experience for the device. For an actual guide on how to do so, I would have to ask you to google it.
PS: Xiaomi.eu doesn't have a ROM build for sweetin devices, i.e. Redmi Note 10 Pro Max India. However, the build for sweet devices, i.e. Redmi Note 10 Pro Global works fine with it. For other Xiaomi devices, one might have to test several ROMs before finding the right one.
@iMaiconP @daydy225

How to push update on Global rom 13.0.9 to update 13.0.12

does anyone have a workaround for this? ... it's been a while since we received an update from Xiaomi.

This applies to all Xiaomi/Redmi devices affected
Check xiaomifirmwareupdater.com for official updates, if any. Sometimes the MIUI updater just doesn't push them to you.
If there is no official update and you are comfortable tinkering with the device, an alternative would be to use custom ROMs, especially Xiaomi.eu ROM if you like how MIUI does things and want a stable experience for the device. For an actual guide on how to do so, I would have to ask you to google it.
PS: Xiaomi.eu doesn't have a ROM build for sweetin devices, i.e. Redmi Note 10 Pro Max India. However, the build for sweet devices, i.e. Redmi Note 10 Pro Global works fine with it. For other Xiaomi devices, one might have to test several ROMs before finding the right one.
@iMaiconP @daydy225

Well, I have downloaded Xiaomi.eu MIUI 13.0.12 and when I try to install it using TWRP I'm getting this error:
E3004: This package is for "sweet" devices; this is a "sweetin".
And I can't flash it. Maybe the solution will be using some custom ROM or finding some way to bypass the device check before flash.

Please share with me the link of xiaomi.eu MUI 13.0.12 that you have downloaded

Please share with me the link of xiaomi.eu MUI 13.0.12 that you have downloaded

https://xiaomi.eu/community/threads/miui-13-stable-release.64441/
BTW: I have just installed custom ROM Pixel Experience 12 Plus. I'm still setting it up, so can't tell if it solves the problem just yet. Will edit after everything is ready and tested.

You're cool

E3004: This package is for "sweet" devices; this is a "sweetin".

you need to edit the updater-script inside the zip package. instructions can be found on the internet. @iMaiconP

One small note for Linux users, display doesn't open on Wayland (probably for security reasons).
Use Xorg...

@alex-theoto https://github.com/Genymobile/scrcpy/issues/3431

I have a Redmi note 10 pro that I wanted to use scrcpy on too. Is there some sort of xiaomi forum thing that we can go and spread awareness to this issue?

I have a Redmi note 10 pro that I wanted to use scrcpy on too. Is there some sort of xiaomi forum thing that we can go and spread awareness to this issue?

Certainly, Xiaomi has a forum, but do not expect any visibility of this issue, these forums are usually answered only by Xiaomi users and not developers.

But if you use miui 13 EU latest ROM, scrcpy works without any issues

Xiaomi is rolling out update that fixed the issue. I got september patch install recently 13.0.10 and yep no more crash like before. That's crazy cool!

manoaratefy

Unfortunately RN10 Pro Max India has not receive the update the lastest update is <IP_ADDRESS> :/

my last offered update for MIUI is 13.0.4 and scrcpy now works :)

sure, the eu version works very well both usb and wireless connection
alexf
On Mon, Aug 22, 2022 at 7:07 AM hwoarang5 @.***> wrote:

yup updated and it works again, wish they enable option to cast netflix
and disney plus via scrcpy too
—
Reply to this email directly, view it on GitHub
https://github.com/Genymobile/scrcpy/issues/3051#issuecomment-1221779693,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AWQAWAED7LDTUVRV63W4L4TV2L4IPANCNFSM5PDZWLRA
.
You are receiving this because you commented.Message ID:
@.***>

I'm having the same issues in Redmi Note 10 Pro after updating to MIUI 13 and Android 12, any fixes found?
EDIT: changing the encoder works: --encoder 'OMX.google.h264.encoder' EDIT2: you can control the phone but it freezes on PC screen.

It works!! thanks!
redmi note 8 pro; Android 12; PE 12.1 plus

For Redmi Node 10 India, the new firmware MIUI Global <IP_ADDRESS> SKFINXM (released few days) solve the issue.

The issue still there with XiaomiA1 lineageOS 18 (android 11)
I can't understand why this been closed why the issue still around

The issue still there with XiaomiA1 lineageOS 18 (android 11) with latest scrcpy 2.2.1 I can't understand why this been closed why the issue still around.
I can see some people saying upgrade MIUI global but this is not the case for custom rom, and not solution of scrcpy

I would like to second that!

I can't understand why this been closed why the issue still around.

The bug is not in scrcpy, but in the custom ROM, and AFAIK there's nothing scrcpy can do to fix it.
If someone finds a solution (for example with some specific parameters: https://github.com/Genymobile/scrcpy/issues/3051#issuecomment-1048900242) then propose it.
The open/closed state of the issue is irrelevant anyway, if there's a solution it will be fixed.

yes, <IP_ADDRESS> on RN 10Pro seems to carry the day with this issue AND NO OTHER SCREEN MIRRORING APP SEEMS TO WORK, VIA USB OR WIRELESS.

this worked for me wireless suggestion Note 13 android 15 HyperOs 2.0.4


feat: Add Functions tips scopes

Adds a section on Function scopes
Bug: b/132734505
Accidentally closed here: https://github.com/GoogleCloudPlatform/java-docs-samples/pull/1561

Anyone can merge when green.


Add password reset request mechanism

Used an old gmail account in the dev environment, but need to choose a Heroky add-on for staging and prod.


Minor tidy up

Hi @robkinyon
Please review the PR.
This is general tidy up with regard to include META.json to the distribution and ignore MYMETA.json.
Many Thanks.
Best Regards,
Mohammad S Anwar

Thank you for this. It will be included in the next release.


Python file path info in "files_dict" and "diff.filename_pre"  can not match when I use improve mode

Policy and info

Maintainers will close issues that have been stale for 14 days if they contain relevant answers.
Adding the label "sweep" will automatically turn the issue into a coded pull request. Works best for mechanical tasks. More info/syntax at: https://docs.sweep.dev/

Expected Behavior
When I use improve mode,the open ai api could return code updated.But the updated code can not write into exist python file.I debug it, Python file path info in "files_dict" and "diff.filename_pre"  can not match.
Current Behavior
Failure Information
windows ; python 10; gpt-engineer 0.2.6
Failure Logs
The image cointains error information

Hey, @bramble-river - are you seeing this issue with some newer gpt-engineer releases, too? You mentioned you are using 0.2.6.

Hi @bramble-river, thank you for bringing this issue to our attention. It appears that the GPT-engineer is unable to detect the content of your file, leading to an error in parsing the changes.
To assist us in identifying and replicating the issue, could you please upload debug_log_file.txt? You should find this file at the following path: your_project_path/.geteng/memery/logs/debug_log_file.txt. This file contains all the necessary information and will help us resolve the issue efficiently.

Closing this due to inactivity. @bramble-river, feel free to re-open if you are able to provide the debug file to us.


[Trivial] Remove error log on unsupported pool factory

The StablePoolFactory is not yet indexed, therefore we are logging this error on every restart causing a noisy alert.
Downgrading to WARN which will still allow us to see this when we check logs periodically
Test Plan
CI

Codecov Report

Merging #1040 (454049a) into main (15c35b4) will decrease coverage by 0.03%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main    #1040      +/-   ##
==========================================
- Coverage   64.36%   64.33%   -0.04%
==========================================
  Files         123      123
  Lines       23031    22990      -41
==========================================
- Hits        14825    14791      -34
+ Misses       8206     8199       -7

Looks like our code coverage considers comments as test hits 😞


Implicit methods

_init() is implicitly called with new().
In the same way:
print(my_object) # could implicitly call a function my_object.to_string()
value in my_object # my_object.contains(value)
my_object == value # my_object.equals(value)
my_object[index] # my_object.get_item(index)
# etc etc

Like in Python
It's always fun to use. :)

Sounds interesting for other operators as well (+, -, *, /). I'm not sure we should allow users to override == though, since it is pretty useful for checking if two objects are the very same instance.

Maybe adding an is keyword for instance comparison and allow overriding ==. I think that's how it works in Python:

is will return True if two variables point to the same object, == if the objects referred to by the variables are equal.
· http://stackoverflow.com/questions/132988/is-there-a-difference-between-and-is-in-python

Or we could just add === :stuck_out_tongue_winking_eye: (no really, don't)

Also remember the x in y operator is used to check if the object y contains the variable by name x, if x is a String. If x is something different, the code calls getvar which seems unimplemented.

Correct me if I am wrong but I think you can already override _iter_init, _iter_next and _iter_get.

Correct me if I am wrong but I think you can already override _iter_init, _iter_next and _iter_get.

This is true about for loops. But if your custom type implements a collection, the in operator can't be used to check if an item is inside it.

I would like to discuss a bit on how this should be done (supposing we are going to implement it):
IMO Script should provide a virtual method called has_operator_override(Operator), and Variant::evaluate would check it before calling the overridden method. This way the Script implementation could cache the result to avoid slowing operators.
This would only need to be used for operators that already have a built-in behaviour for Object, like comparison operators, but can be ignored for operators like * and /.
Also the method call should be done with another virtual method, like call_operator(Operator, value, r_ret, r_valid). This way, GDScript could call __add__ (or whatever) and other languages could call their own method (e.g: op_Addition in case of C#).
BTW, this most likely cannot be done before 3.0 due to compatibility breakage.

Just another 1+ for magic functions.
str would be really nice for debugging.
I'd be more interested in _get being able to be used for everything not just strings tho.
The optimum imo would be _get and _get_index so ones wouldn't need to check the type for simple index stuff.

What about this in GDScript:
func _+(other):
  return get_script().new(self.number + other.number)
# .. - * /
func get_[](index):
  return bool((self.number >> index) % 2)
func set_[](index, value):
  self.number = self.number & (1 << index)
func _str():
  return str(self.number)
func _in(index):
  return self[index]

Aren't this at least some of those implemented?
The following works:
func _to_string()->String:
    return "Custom message when printed"

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.
The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.
If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!


Added calibration plugin

This adds a calibration plugin which right now supports gyro, accelerometer, and magnetometer calibration.

Note to self about CI:
/root/DroneCore/install/include/dronecore/calibration.h:11: warning: Compound dronecore::Calibration is not documented.
Please check doxygen warnings.


Fix buttons on wishlist products

Questions
Answers

Description?
Product buttons in wishlists didn't get proper labels and styling, because of invalid checks. product.customizable is an INT, not a STRING.

Type?
bug fix

BC breaks?
no

Deprecations?
no

Fixed ticket?
Fixes #{issue URL here}, Fixes #{another issue URL here}

Sponsor company
Your company or customer's name goes here (if applicable).

How to test?
1. Add different products to your wishlist, including 1 out of stock and 1 customizable2. Check your wishlist3. Apply this PR and build assets4. Check your wishlist again

before

after

Hi @SharakPL
Thank you for your PR, currently when I test it, I didn't have the expected behavior, on hummingbird :

And on classic theme :
recording(127).webm
Tested on 8.1x and develop.
Have you some idea of why this doesn't works ?
Waiting for feedback

Thanks @AureRita


Commands ran from 0 0

make a command item using ~ ~ ~ in a command and the position it runs from is 0 0

Fixed with 6d557b7a07340c3614e4c31a7fce3cb550f52747.
Use @x @y @z placeholders.


Added Ballerina Test for appendHeaderParams with mutiple parameters u…

…sing getBodyPartsAsChannel method
Purpose
Examples
Checklist

[ ] Linked to an issue
[ ] Updated the changelog
[ ] Added tests

Codecov Report

Merging #5 (0a5742c) into master (4d6c5f7) will increase coverage by 0.28%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master       #5      +/-   ##
==========================================
+ Coverage   77.66%   77.94%   +0.28%
==========================================
  Files          18       18
  Lines        1052     1052
  Branches      279      279
==========================================
+ Hits          817      820       +3
+ Misses        153      151       -2
+ Partials       82       81       -1

Impacted Files
Coverage Δ

...n/java/org/ballerinalang/mime/util/HeaderUtil.java
69.23% <0.00%> (+5.76%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4d6c5f7...0a5742c. Read the comment docs.


Face Unlock Authentication

Feature Description
To improve user experience and add an extra layer of security, I propose a Face Unlock feature to the existing framework.
Describe the solution you'd like
There are two potential methods to implement this feature:

Server-Side Processing:

Capture the video feed from the client's device.
Send the video feed to the server for processing.
Identify facial landmarks based on the user's profile.
Store these landmarks in the database.
Generate authentication tokens based on these landmarks which will be used for further authentication and access privileges.

Client-Side Processing:

Develop a frontend solution that resides on the client side.
This frontend solution will contain the facial recognition algorithms along with the pre-trained weights.

Capture the video feed and process it on the client side.
Generate tokens based on this processing.
Send these tokens to the server for further processing and validation.

Additional context
The choice between the two methods will need a deeper evaluation of security implications, user experience, and server load. While server-side processing centralizes the data, ensuring more control, client-side processing might provide a faster response and reduce server load. However, concerns about the security of client-side processing and ensuring the integrity of the tokens generated will need to be addressed.

I think the best approach for something like this would be what FIDO 2 has been working towards and auth systems like hanko do with their passkey api.
https://fidoalliance.org/passkeys/


Update

Coverage remained the same at 100.0% when pulling 295b9e7d8315429841cad37f691c84cb1908cd35 on fiscal-cliff:master into bf0eee77489579ebf7719916150abc0a89396146 on JelF:master.

0.3.2 released, thanks


[Feature Request] say something

Background
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
TYPESCRIPT SUPPORT
Proposal
Describe the solution you'd like, better to provide some pseudo code.
Additional context
Add any other context or screenshots about the feature request here.

+1


After upgrading to V2.0.3, i am getting this error TypeError: Super expression must either be null or a function

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Environment (please complete the following information):
Run react-native info in your project and share the content.
What react-native-track-player version are you using?
Are you testing on a real device or in the simulator? Which OS version are you running?
Code
Please, share the code that is causing the issue

His @mohity777 what version did you upgrade from?
This sounds like an issue that comes up during a migration, likely an import is wrong.
Instead of import { STATE_PLAYING } you want to do import { State }  then use Event.Playing
this is true also for capabilities, Events, etc.. likely you missed migrating an import.

Then use Event.Playing or State.Playing ?

Sorry yes. State.Playing.
You can take a look at the example app for reference as well :)

Yeah i actually did follow changes that were mentioned in the readme before opening this issue like changing imports for STATE_XXX and CAPABILITY_XXX . I will recheck if i missed somewhere and let u know.

I think it was because I was using import {ProgressComponent} from 'react-native-track-player'; and using it in my code.


忽略日志文件

注释git blame功能
添加shiro反序列化规则

Pull Request Test Coverage Report for Build 437

7 of 11 (63.64%)  changed or added relevant lines in 1 file are covered.
15 unchanged lines in 7 files lost coverage.
Overall coverage increased (+0.1%) to 41.738%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

cobra/pickup.py
7
11
63.64%

Files with Coverage Reduction
New Missed Lines
%

cobra/engine.py
1
26.93%

cobra/cve.py
2
81.5%

cobra/log.py
2
44.93%

cobra/init.py
2
29.11%

cobra/export.py
2
60.0%

cobra/utils.py
3
35.34%

cobra/pickup.py
3
33.78%

Totals

Change from base Build 436:
0.1%

Covered Lines:
1614

Relevant Lines:
3867

💛  - Coveralls


Improve unhandled exception display

Need to step up the game here.

The failed program output (the relevant part) is often buried somewhere above the callstack, making it difficult to spot.
The stdout/stderr capture doesn't seem to work all the time
Is stdout/stderr in the exception always None? 🤔

Error reporting was greatly enhanced recently. Closing to reassess through day-to-day usage.


ichigo:0.2.0

I am submitting

[ ] a new package
[x] an update for a package

Description: Theme development guide, new theme design, minor fixes

Thanks!


[FEATURE REQ] Allow HTTP SAS URLs for localhost

Library name
Azure.Data.Tables
Please describe the feature.
In Azure.Data.Tables (tested (12.7.1), it's possible to create a SAS URL that cannot be used. The following exception is thrown:
Message: Cannot use TokenCredential without HTTPS.
System.ArgumentException: Cannot use TokenCredential without HTTPS. (Parameter 'endpoint')
   at Azure.Data.Tables.TableServiceClient..ctor(Uri endpoint, TableClientOptions options)
   at Program.<Main>$(String[] args) in C:\z\Trash\2022-12-04\ConsoleApp1\ConsoleApp1\Program.cs:line 18
   at Program.<Main>(String[] args)

Here's a repro:
using Azure.Data.Tables;
using Azure.Data.Tables.Sas;
using Microsoft.WindowsAzure.Storage.Table;

// Make the SAS
var tableServiceClient = new TableServiceClient("UseDevelopmentStorage=true");
var table = tableServiceClient.GetTableClient("test");
var sasUri = table.GenerateSasUri(TableSasPermissions.Read, DateTimeOffset.UtcNow.AddDays(7));

Console.WriteLine(sasUri.AbsoluteUri.ToString());

// WindowsAzure.Storage
var older = new CloudTable(sasUri);
Console.WriteLine("Using older SDK...");
Console.WriteLine(await older.ExistsAsync());

// Azure.Data.Tables
var newer = new TableServiceClient(sasUri);
Console.WriteLine("Using newer SDK...");
Console.WriteLine(await newer.GetPropertiesAsync());

This restriction makes total sense for production scenarios, but for testing scenarios, HTTPS is a painful hurdle. I propose that the HTTPS restriction is disabled when the host is localhost or <IP_ADDRESS>.
Azurite uses HTTP by default. To make Azurite use HTTPS, it's not easy:
https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azurite?tabs=visual-studio#certificate-configuration-https. There's several challenges like making your PC trust the Azurite cert and telling Azurite to use a specific cert which is impossible/hard for the Azurite VS Code extension.

Thank you for your feedback.  Tagging and routing to the team member best able to assist.


[SERF-2956] Upgrade lumberjack to v2.2.1

Description

In this PR we are upgrading the natefinch/lumberjack.v2 library to the latest v2.2.1 version.
There is no breaking change that would affect go-sdk and/or go-chassis
Testing considerations

[ ] Deploy go-chassis to development and check if everything works as expected

Checklist

[x] Prefixed the PR title with the JIRA ticket code
[x] Performed simple, atomic commits with good commit messages
[x] Verified that the commit history is linear and commits are squashed as necessary
[ ] Thoroughly tested the changes in development and/or staging
[ ] ~Updated the README.md as necessary~

Related links

SERF-2956

@terranisu

The commit message contains the chore prefix, which won't cut a new release of the go-sdk. Is it what we want to?

Yes, since there is no change that would affect go-chassis we do not want to release a new version. We will create a release when we have either a library upgrade that has an effect on go-chassis (grpc for example) or we have a batch upgrade


prebuild binaries for arm

Using raspberry-pi, arm architecture, the installation outputs the following warnning.
prebuild-install WARN install No prebuilt binaries found (target=12.18.3 runtime=node arch=arm libc= platform=linux)
Can you please also provide pre-built binaries for ARM?
Thank you!

Closing as a duplicate of https://github.com/JoshuaWise/better-sqlite3/issues/601


Get size on fast image?

Is it possible to get the size of a fast image the same way to get size via React Native's Image.getSize()?

There are now width and height properties on the onLoad callback.

@DylanVann
Why i get undefined on the onLoad callback?

How can these values be used as the actual width and height of the image? I am able to get the width and height logged but I cant seem to use them?

@bemaverick it work from version 4.0.8 for me, maybe you need an update ?
@nica0012
You should use state to reload component who display your FastImage :
e.g :
import React, { Component } from "react";
import { Dimensions } from "react-native";
import FastImage from "react-native-fast-image";

const { width } = Dimensions.get("window");

export default class YourFastImage extends Component {
  constructor(props) {
    super(props);
    this.state = {
      calcImgHeight: 0,
    };
  }
  render() {
    const { calcImgHeight } = this.state;
    return (
      <FastImage
        style={{ width: width, height: calcImgHeight }}
        source={{
          uri: "https://unsplash.it/400/400?image=1",
        }}
        resizeMode={FastImage.resizeMode.contain}
        onLoad={evt =>
          this.setState({
            calcImgHeight:
              evt.nativeEvent.height / evt.nativeEvent.width * width, // By this, you keep the image ratio
          })}
      />
    );
  }
}

@NoMaxLand Thanks for the snippet! This is the first thing I tried but calling setState is giving me an infinate loop and nothing returns. Check out the issue I posted so you can have a better idea what's going on:
https://github.com/DylanVann/react-native-fast-image/issues/198
Cheers,

It's best to not depend on the width and height of the image, and to instead know the size or aspect ratio beforehand and use an appropriate resize mode. This will help you avoid UI jank on loading the image.
@bemaverick Not sure why you would get undefined. Are you using the latest version of this package?

@DylanVann I think an API involving a static FastImage.getSize or a callback on FastImage.preload would be useful.
My usecase is using FastImage inside of react-native-image-zoom. To use the onLoad callback I would have to use a wrapping component that doesnt render the ImageZoom component until the onLoad callback fires. This means I have to rerender the FastImage component after I get the image size. Here's my current solution.
https://gist.github.com/woodpav/1707e59feff35502ab9801bf84447c16

@woodpav I agree with you. If I can getSize before render, it will be very useful.
your workaround is good, but I'm wondering Image.getSize won't do the cache like fast-image does, is it?

There are now width and height properties on the onLoad callback.

Can you make example?

I really need this function because I don't want to load 2 times (from the Image and FastImage components) just to display 1 image, it means that the download size is doubled, what if there are 100 or more images?
in my case to display some images with dynamic height in the FlatList component the image becomes blurry if adjusting the height using onLoad, so I have to get the height of the image before rendering.

I resolved blurry images by adding .dontTransform():
https://github.com/DylanVann/react-native-fast-image/blob/0439f7190f141e51a391c84890cdd8a7067c6ad3/android/src/main/java/com/dylanvann/fastimage/FastImageViewManager.java#L99
if (requestManager != null) {
            requestManager
                    // This will make this work for remote and local images. e.g.
                    //    - file:///
                    //    - content://
                    //    - res:/
                    //    - android.resource://
                    //    - data:image/png;base64
                    .load(imageSource.getSourceForLoad())
                    .dontTransform()
                    .apply(FastImageViewConverter.getOptions(context, imageSource, source))
                    .listener(new FastImageRequestListener(key))
                    .into(view);
        }
    }

any updates on this @arispati ?

also can we reopen the issue?

Sorry @JacobDel , this has been very long. so I can't give my opinion.


inline option in condense.js

Hi Joe,
I've just added an option to make the ellipsis text part of the truncated block (useful when that's '...') for instance.
Best,
Alex.

thanks


Add Menu Icon + Dropdown

for now, including

account placeholder
software author & twitter
submit issue
version
"Built with 🐈  by Dat"

Mockup:

We've temporarily removed the menu; marking this as priority low. Probably related to the login and logout feature

Styles for this are done, just hidden (.dn). Closing in favor of #134 and #135.


Rate Limiter: Limit by Percent Time

Please enhance Rate Limiter so that the amount of time spent waiting for the operation is less than a configurable percent.
Let's say an operation takes 10 seconds and the percent is 10%.  Then, the rate limiter wouldn't allow another operation to proceed for another 100 seconds so that the overall time spent in the operation is ≤ 10%.
If the operation is a HTTP request, then the above rate limiter can dynamically respond to server performance.  If the server is responding quickly, then the rate limiter would have little impact on the request rate.  If the server is responding slowly, then the rate limiter would slow down the request rate.
This is very important when an operation needs to have less than 1% impact.

This sounds like a variation of the max wait time setting, where we'd adjust the max wait time to be some percentage of the last (N?) executions(s) through the rate limiter? Since execution times will vary, and a rate limiter presumably has many executions going through it, which ones do you base the current max wait time off of?

One challenge is deciding where the best place to store historic execution information might be, and also, how many execution times to store. Since this might be a bit use case specific, another option would be to accept a maxWait predicate on a RateLimiter, where a user can decide, based on whatever criteria, whether to permit an execution or not. This implies having access to some stats about execution times though.

@jhalterman You can store historic execution information in ImpactRateLimiterImpl, a new class.  You could have private volatile Duration totalTime and private volatile long count fields.  A VarHandle.compareAndSet() can be used to add to the totalTime.
Before the operation's execution, ImpactRateExecutor adds the average operation execution time to "reserve" its operation execution start time.  This determines how long the execution must wait before starting (or not wait at all).  After the operation's execution, ImpactRateExecutor adds the actual operation execution time minus the average used in the first sentence.  The first execution does not add anything before its execution.
Executions will do one of the following:

Proceed immediately because the total execution time does not exceed the maximum impact.
Wait for a short amount of time because the execution's average time will cause the impact to exceed the maximum impact.
Throw an exception because the wait time exceeds the maximum wait time.

VarHandle is Java 9+, and I would very much like to maintain Java 8 compatibility.

@Tembrel Ah, you're right.  So, you can use AtomicReference<Duration> and AtomicLong.


Implement create span

Implement creation of new spans over tokens, i.e., new spanned cells over empty cells within an existing span column.
Constraints for this issue:

New spans can only be created in an existing span column.
New spans can only be created over empty cells.

Scenarios:

One or more consecutive empty cells in a span column are selected -> new span is created over these cells
One or more non-consecutive empty cells in a span column are selected -> new span is created over these cells

Approach: Solve via TypedEditSelectionCommandHandler, registered on GridFreezeLayer. This needs a selectionLayer.


[WIP] VideoStreamingManager state fixes

Minor fixes for https://github.com/smartdevicelink/sdl_android/pull/879 to make sure that videoStreamingManager is initialized before we call videoStreamingManager.handleTransportUpdated()

Codecov Report

Merging #880 into feature/sim_transport_integration_with_managers will decrease coverage by <.01%.
The diff coverage is 0%.

@@                                  Coverage Diff                                  @@
##             feature/sim_transport_integration_with_managers     #880      +/-   ##
=====================================================================================
- Coverage                                               42.4%   42.39%   -0.01%
  Complexity                                              3675     3675
=====================================================================================
  Files                                                    433      433
  Lines                                                  22858    22862       +4
  Branches                                                2650     2652       +2
=====================================================================================
  Hits                                                    9693     9693
- Misses                                                 12536    12540       +4
  Partials                                                 629      629

Impacted Files
Coverage Δ
Complexity Δ

.../java/com/smartdevicelink/managers/SdlManager.java
41.31% <0%> (-0.49%)
27 <0> (ø)

...java/com/smartdevicelink/protocol/SdlProtocol.java
16.96% <0%> (-0.03%)
20 <0> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 65e6fde...1a2513d. Read the comment docs.


Improve database history store performance

Changes:

Switched database scripts to use flyway.  This enables us to keep track of migration scripts, ensure that users can upgrade, and verify that the correct version is installed.
Changed tests from using derby to using embedded mysql.  This allows our tests to verify the same code, migrations, etc. as will be used in production.
Added a check in DatabaseJobHistoryStore that verifies that the DB is the correct version.  If it is not, a warning will be logged and all operations on the store will become no-ops. This ensures that we don't break if users upgrade the code, but forget to upgrade the database.
Changed travis build to have dependencies needed to run embedded mysql, split the jdk7/jdk8 build jobs, enabled caching.  This allows easier identification of problems, improves performance, etc.
Changed DatabaseJobHistoryStore to use batching and upserts to greatly increase performance.  Also stopped sending in epoch for startTime/endTime which are not specified.  Lastly, removed job properties from task properties to reduce data suplication.  All this is to improve performance and data correctness.
Changed the admin UI to show '-' for startTime/endTime when not set
Added step at end of travis build to output test failures to console.  The facilitates the ability to determine why the build failed.
Enabled support for compression in the JobExecutionInfoServer
Reduced the amount of data requested by Admin UI
Rewrote the DatabaseJobHistoryStore querying code to greatly reduce the number of queries

Job History Store Management
Migrate an unmanaged database (First Time)
./historystore-manager.sh migrate -Durl="jdbc:mysql://<SERVER>/gobblin" -Duser="<USER>" -Dpassword="<PASSWORD>" -DbaselineOnMigrate=true

Migrate a database (Subsequent Time)
./historystore-manager.sh migrate -Durl="jdbc:mysql://<SERVER>/gobblin" -Duser="<USER>" -Dpassword="<PASSWORD>"

Get database migration status
./historystore-manager.sh info -Durl="jdbc:mysql://<SERVER>/gobblin" -Duser="<USER>" -Dpassword="<PASSWORD>"

@sahilTakiar @liyinan926 @abti Can you review this?

@sahilTakiar @abti Replaced #689 with this PR.

A few of the new files are missing the license header.

@sahilTakiar Added license headers to all new files and move embedded python script to a different file.

@sahilTakiar The travis build breaks are due to #709
Testsuite: gobblin.yarn.GobblinApplicationMasterTest
Tests run: 2, Failures: 1, Errors: 0, Time elapsed: 47.454 sec
--------- ----------- ---------
Testcase: testSendShutdownRequest took 32.013 FAILURE
    java.util.concurrent.TimeoutException: Timeout waiting for condition '1 message queued'.      java.util.concurrent.TimeoutException
    java.util.concurrent.TimeoutException: Timeout waiting for condition '1 message queued'.

@sahilTakiar Any other questions or changes

Sorry, haven't had a chance to look through this in detail yet, will try to go through it today if not then tomorrow.

Thanks

Hey @kadaan thanks for this PR, a lot of these changes will be very useful. Can you add some more documentation to some of the scripts you added here? Specifically the files under ./travis and ./ gobblin-metastore/src/main/resources/db/migration/

@eogren I believe you are also running the Job History Store. This PR has significant changes to the Store. Specifically, if you need to upgrade Gobblin the ./historystore-manager.sh script will be needed (as outlined in the PR description).
Let us know if you have any issues with using flyway for schema migrations or any changes to the MySQL DDL / the DatabaseJobHistoryStore class.

@eogren @sahilTakiar The options I saw were using flyway, liquibase, or writing something ourselves.  Liquibase seems very flexible, but more complex.  Flyway is similar to solutions that we have written in house in the past.  I'm open to other solutions, but want to keep the following properties:

Developers can easily describe schema changes.
Code can determine if the DB is at the correct version
Users can easily upgrade their database

@sahilTakiar Added some documentation, renamed JdbcUrl, renamed TestMetastoreDatabase & PrivateTestMetadataDatabase.

Hi @sahilTakiar, haven't had time to test the migration out yet but hopefully will by early next week.

@eogren @sahilTakiar Greatly improved the performance of the DatabaseJobHistoryStore  querying.

@eogren Have you had any time to review?  Can I assist in any way?

Overall looks pretty neat to me!

@eogren Updated to no longer use sprocs  for the migrations. Minimum version detection is now automatic

thank you!

@sahilTakiar: All outstanding comments are addressed.

@sahilTakiar All of your comments have been addressed, aside the one where you wanted gobblin to crash if the DB was not up to date.  I don't want to do that one because I believe it will cause customers more headache than the benefit.

@sahilTakiar Updated

@sahilTakiar Anything blocking this?

@kadaan would really like to see how much effort it would be for the upgrade scripts to be applied automatically. Not a fan of the approach where a Gobblin version upgrade can cause the job history store to stop working, and the only notification to the user is a log statement.

@sahilTakiar while I agree that it would be optimal to automatically upgrade the database, there are a few problems with making it reliable. First, since there is no rollback script if the upgrade fails in the database is an invalid state. Second, on an existing database the upgrade could take large amount of time which would delay the startup of gobblin. Third, many companies strictly control their databases and want to be in charge of when they are upgraded. This would not be possible if we automatically upgraded.
I would much prefer if the code was backwards compatible with older versions of the database. That way upgrades could happen whenever and new features wouldn't be exposed until the upgrade had been applied. This is outside the scope of the pull request,  which was scoped to improving the performance of the job history database and ensuring the upgrades could be done.
Alternatively I wouldn't be opposed to having a configurable option to automatically upgrade the database.

@sahilTakiar Before I spend time making the change would the following be acceptable:
A configurable option to automatically upgrade the database.  It will default to enabled, but can be disabled for those users which want to handle upgrades manually.

hey sorry, let me look through your comments more today, and I will get back to you

@kadaan all the points you brought up about upgrading the database make sense, so maybes that not the right approach.
If a user does not run the upgrade scripts, will the code still work?

At the moment, no. I need checks for the version of the database and if it doesn't match or exceed with the code expects then it will not start the job history store.

So it is possible to slightly modify the PR so that old versions of the job history store still work, but the performance is just not as efficient as the upgraded version?

I don't think it is possib'le without keeping both versions of the JobHistoryStore (which we could do) or having multiple versions of the put method.
Sent from my iPhone

On Mar 22, 2016, at 7:56 PM, Sahil Takiar<EMAIL_ADDRESS>wrote:
So it is possible to slightly modify the PR so that old versions of the job history store still work, but the performance is just not as efficient as the upgraded version?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

Is it possible to keep multiple version of the put method? That would be ideal as we won't break any existing users of the JobHistoryStore. We can make the old put method as deprecated, and when Gobblin goes through a major version change we can delete it.

@sahilTakiar Does supporting multiple versions of put seem to be the last outstanding issue? I would like to get this done, but am losing time to work on it.

Coverage increased (+0.09%) to 44.257% when pulling 9235a005987f7abd6bc9fde57066a71c050a1b20 on kadaan:ImproveDatabaseHistoryStorePerformance into c3a9f9dccfd434c016c25e360ec04ddd7058f321 on linkedin:master.

Coverage increased (+0.9%) to 44.959% when pulling 7a1236608505e71948a721530a7f196c9ce0d3dd on kadaan:ImproveDatabaseHistoryStorePerformance into cf7c251d419a4e45e52439c09e706e210f636345 on linkedin:master.

@sahilTakiar I have updated the code to support both the old and new versions of the database.  It will automatically detect the correct one to use.

Coverage increased (+1.0%) to 45.065% when pulling 13d5b3917b2307e1ec9aaefc41bccb7127f5239a on kadaan:ImproveDatabaseHistoryStorePerformance into cf7c251d419a4e45e52439c09e706e210f636345 on linkedin:master.

Coverage increased (+0.8%) to 44.924% when pulling 13d5b3917b2307e1ec9aaefc41bccb7127f5239a on kadaan:ImproveDatabaseHistoryStorePerformance into cf7c251d419a4e45e52439c09e706e210f636345 on linkedin:master.

LGTM. I think you just need to do a rebase, and then fix any outstanding FindBugs warnings, and then this should be good to merge.

@sahilTakiar This has been updated.

@kadaan I think you have to rebase again, it says there are still conflicts that must be resolved

@sahilTakiar This has got to be it :-)

@kadaan we see a lot of test failures which point to the embedded MySQL store. Is it required? Can we use derby instead?

There should be no failures.  I will look into them.  No, we cannot use Derby as the supported sql is different.

On Jun 1, 2016, at 1:20 PM, Chavdar Botev<EMAIL_ADDRESS>wrote:
@kadaan https://github.com/kadaan we see a lot of test failures which point to the embedded MySQL store. Is it required? Can we use derby instead?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/linkedin/gobblin/pull/705#issuecomment-223112376, or mute the thread https://github.com/notifications/unsubscribe/AB0RAlrc-lvsP1Yb-j_1gAMHsvm4JjX_ks5qHemBgaJpZM4HZRHz.

They tend to happen more on Travis.
Here is one failure:
java.lang.RuntimeException: Command exited with error code: '1' and output: 'FATAL ERROR: Could not find
If you compiled from source, you need to run 'make install' to
copy the software into the correct location ready for operation.
If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the --basedir option
pointing to that location.
'
at com.wix.mysql.distribution.setup.ProcessRunner.resolveException(ProcessRunner.java:32)
at com.wix.mysql.distribution.setup.ProcessRunner.run(ProcessRunner.java:17)
at com.wix.mysql.distribution.setup.NixBefore57Initializer.apply(NixBefore57Initializer.java:30)
at com.wix.mysql.distribution.Setup.apply(Setup.java:24)
at com.wix.mysql.MysqldExecutable.start(MysqldExecutable.java:37)
at com.wix.mysql.MysqldExecutable.start(MysqldExecutable.java:19)
at de.flapdoodle.embed.process.runtime.Executable.start(Executable.java:101)
at com.wix.mysql.EmbeddedMysql.(EmbeddedMysql.java:32)
at com.wix.mysql.EmbeddedMysql$Builder.start(EmbeddedMysql.java:121)
at gobblin.metastore.testing.TestMetastoreDatabaseServer.(TestMetastoreDatabaseServer.java:54)
at gobblin.metastore.testing.TestMetastoreDatabaseFactory.ensureDatabaseExists(TestMetastoreDatabaseFactory.java:61)
at gobblin.metastore.testing.TestMetastoreDatabaseFactory.get(TestMetastoreDatabaseFactory.java:41)
at gobblin.metastore.testing.TestMetastoreDatabaseFactory.get(TestMetastoreDatabaseFactory.java:36)
at gobblin.runtime.mapreduce.MRJobLauncherTest.startUp(MRJobLauncherTest.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:514)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:215)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:178)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
at org.testng.TestRunner.privateRun(TestRunner.java:782)
at org.testng.TestRunner.run(TestRunner.java:632)
:
:

Another exception:
116322 [Test worker] ERROR gobblin.runtime.mapreduce.MRJobLauncherTest.testLaunchJobWithPullLimit  - failure: com.google.inject.ProvisionException: Unable to provision, see the following errors:

Error injecting constructor, org.flywaydb.core.api.FlywayException: Unable to obtain Jdbc connection from DataSource
at gobblin.metastore.DatabaseJobHistoryStore.(DatabaseJobHistoryStore.java:53)
while locating gobblin.metastore.DatabaseJobHistoryStore
while locating gobblin.metastore.JobHistoryStore

1 error
com.google.inject.ProvisionException: Unable to provision, see the following errors:

Error injecting constructor, org.flywaydb.core.api.FlywayException: Unable to obtain Jdbc connection from DataSource
at gobblin.metastore.DatabaseJobHistoryStore.(DatabaseJobHistoryStore.java:53)
while locating gobblin.metastore.DatabaseJobHistoryStore
while locating gobblin.metastore.JobHistoryStore

1 error
at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1025)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051)
at gobblin.runtime.JobContext.(JobContext.java:137)
at gobblin.runtime.AbstractJobLauncher.(AbstractJobLauncher.java:131)
at gobblin.runtime.mapreduce.MRJobLauncher.(MRJobLauncher.java:128)
at gobblin.runtime.mapreduce.MRJobLauncher.(MRJobLauncher.java:124)
at gobblin.runtime.JobLauncherFactory.newJobLauncher(JobLauncherFactory.java:65)
at gobblin.runtime.JobLauncherTestHelper.runTestWithPullLimit(JobLauncherTestHelper.java:90)
at gobblin.runtime.mapreduce.MRJobLauncherTest.testLaunchJobWithPullLimit(MRJobLauncherTest.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
at org.testng.internal.MethodInvocationHelper$1.runTestMethod(MethodInvocationHelper.java:197)
at org.jboss.byteman.contrib.bmunit.BMNGAbstractRunner.run(BMNGAbstractRunner.java:56)
at org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:209)

Another issue that seems to be related to MySQL: https://s3.amazonaws.com/archive.travis-ci.org/jobs/134581641/log.txt

Do you know any way to change the mysql configuration for the embedded instance?

Do you want to change connection settings or server settings?

On Jun 1, 2016, at 2:49 PM, Chavdar Botev<EMAIL_ADDRESS>wrote:
Do you know any way to change the mysql configuration for the embedded instance?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/linkedin/gobblin/pull/705#issuecomment-223135489, or mute the thread https://github.com/notifications/unsubscribe/AB0RAlqHxD1QXqtMOQ6p62Tf2t4mF2y5ks5qHf5sgaJpZM4HZRHz.

Server


ChatX module

A new route has been added for a small chat module. Here are the steps to enjoy this wonderful module:

Clone this repo
Do a npm install to install dependencies
Run npm start -s to start a local server, a page should automatically open in your favorite browser at localhost:3000
First you have to login and/or create an account, because the new route is only accessible to logged users
When logged, click on the "Chat Rooms" link on top of the page
On the left side you will see a list of available chats in "Other chats" that you can join. You can also create your own chat using the "Create new chat" input
When you join or create a chat, it is added in the "My chats" list. Here you can either "see" a chat or "leave" it. Also a list of the users in the active chat is displayed on the bottom left of the screen.
When you leave a chat it will come back to the "Other chats' list
When you "see" a chat, you will see the 10 latest messages and you can add new messages by filling the input at the bottom of the screen

Can't do npm start -s:
ERROR in ./src/components/chatRooms/ChatRoomForm.js
Module not found: Error: Cannot resolve module 'react/lib/ReactBaseClasses' in /Users/alexandrelacheze/Dev/react-hot-redux-firebase-starter/src/components/chatRooms
 @ ./src/components/chatRooms/ChatRoomForm.js 17:24-61

ERROR in ./src/components/chatRooms/MessageForm.js
Module not found: Error: Cannot resolve module 'react/lib/ReactBaseClasses' in /Users/alexandrelacheze/Dev/react-hot-redux-firebase-starter/src/components/chatRooms
 @ ./src/components/chatRooms/MessageForm.js 17:24-61

Any idea?

$ rm -rf node_modules
$ npm i

did the job for me.