Bogus scrobbling spam submitted to server

Issue description:

Symfonium is submitting immense amounts of spam with every scrobbled track listen. You can see the results on my ListenBrainz page: abdulocracy's Listens - ListenBrainz

There are thousands of bogus duplicate entries since February 24th.

Logs:

debug.log (510.9 KB)

Or not :slight_smile:

From that logs Symfonium sends the correct scrobble only once with submission=true.

@itm where there changes about those and you now scrobble event with submission=false ? (Would be cool if you could return the serverVersion from OpenSubsonic so we know what version the user is at.

Ok so the logs does not show the issue but show another one with bookmarks that may trigger repost of the queued playcount later on.

Will make some test with LMS to confirm.

Ok so
@itm LMS returns error codes as strings when they are supposed to be int

{
	"subsonic-response" : {
		"error" : {
			"code" : "70",
			"message" : "The requested data was not found."
		},
		"status" : "failed",
		"type" : "lms",
		"version" : "1.16.0"
	}
}

should be

{
	"subsonic-response" : {
		"error" : {
			"code" : 70,
			"message" : "The requested data was not found."
		},
		"status" : "failed",
		"type" : "lms",
		"version" : "1.16.0"
	}
}
<xs:complexType name="Error">
<xs:attribute name="code" type="xs:int" use="required"/>
<xs:attribute name="message" type="xs:string" use="optional"/>
</xs:complexType>
1 Like

@itm where there changes about those and you now scrobble event with submission=false ? (Would be cool if you could return the serverVersion from OpenSubsonic so we know what version the user is at.

No recent change. Apart the code encoded as string stuff, did you notice something else LMS side?
(and indeed currently LMS does not know its own version, it is just a tag on github)

The error code as string is the issue here when I set the playcount, I also remove the eventual resume point (bookmark) since you return error 70 when there’s no previous bookmark but the error code is not an int I don’t detect that it’s a normal error and handle this as an unknown error so need a retry later.

Hence why it send both many times. I’ve added a workaround, but would be best to return an int for the other apps too.

1 Like

ok! (int will be fixed on LMS 3.38.0)