EDCD / EDMarketConnector

Downloads commodity market and other station data from the game Elite: Dangerous for use with all popular online and offline trading tools.
GNU General Public License v2.0
992 stars 155 forks source link

EngineerProgress has neither Engineers nor Progress #1275

Closed foresto closed 1 year ago

foresto commented 3 years ago

Please complete the following information:

Describe the bug The above warning is being logged whenever I start EDMarketConnector.

Based on the data structure in the above warning message and a glance at the code, it looks to me like the ED log data contains a structure that EDMarketConnector doesn't know how to handle: An EngineerProgress message that contains neither a list nor a Progress key.

Perhaps this is a result of Frontier making a small change to their log format?

To Reproduce Steps to reproduce the behavior:

  1. Play the game.
  2. Exit the game.
  3. Start EDMarketConnector
  4. See the warning in the log

Expected behavior I expect this ED log data structure to be handled, not trigger a warning.

Additional context This warning appeared shortly after unlocking grade 5 frame shift drive engineering at Elvira's workshop.

alterNERDtive commented 3 years ago

Expected behavior I expect this ED log data structure to be handled, not trigger a warning.

Have you looked at the underlying event in the journal? I have the sneaking suspicion it is being handled, by printing that line to the log :)

Athanasius commented 3 years ago

This is working as designed. The issue is that the game should write one of two forms of the EngineerProgress event. The first is when you login to the game and it cites your current progress, which is the 'Engineers' form in the message. The second is when you progress with an Engineer during a game session, that's the 'Progress' form in the message.

If it has neither that's a game bug, tell Frontier, quoting the relevant line from your journal file.

foresto commented 3 years ago

If it has neither that's a game bug, tell Frontier, quoting the relevant line from your journal file.

I was trusting that EDMarketConnector's warning text captured the event data structure exactly. Is that not the case? Note that neither key is present there.

If you think that additional keys actually were present in the event, but omitted from EDMarketConnector's representation of it in the warning text, then yes, I suppose I would have to look at the event log's JSON myself to be sure. (Next time it happens. I no longer have the event log from yesterday.) But why would it omit that info?

It didn't occur to me to report a bug to Frontier, because I didn't know the game's event log format was public and documented. Since you suggested it, I have since found the docs (source), (web mirror). Nice.

For the record, here's what happened:

  1. I noticed a stale engineering rank in my Inara account, despite having docked and re-entered the game a couple times with EDMarketConnector running (and Inara API key configured).
  2. I checked the EDMarketConnector log.
  3. I saw the WARNING message noted in this report, and noticed that it concerned exactly the data that was stale on Inara.
  4. I double-checked the event structure as logged, and found that indeed, it had neither of the keys that EDMarketConnector seems to expect.

I have the sneaking suspicion it is being handled, by printing that line to the log :)

Okay, if it turns out that it's being handled correctly, then I suppose the appropriate fix here would be to downgrade that log message's level so it's no longer misleading me with a spurious WARNING when I'm trying to diagnose a seemingly related problem