Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Schema migration fails due to missing_field server_time #337

Closed
spyfly opened this issue Oct 24, 2023 · 5 comments · Fixed by #338
Closed

Schema migration fails due to missing_field server_time #337

spyfly opened this issue Oct 24, 2023 · 5 comments · Fixed by #338

Comments

@spyfly
Copy link

spyfly commented Oct 24, 2023

Version

v0.12.2

What happened?

Schema Migration fails with the following error:

ERROR - Failed to migrate manifest: An unexpected error occurred during manifest migration: Failed to load some accounts: 
[
 DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 469) }),
 DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }),
 DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, 
 ...
]

Steps To Reproduce

Using a manifest.json which has been initialized with Steam Desktop Authenticator and extended with previous versions of steamguard-cli

Relevant log output

DEBUG - Args { global: GlobalArgs { username: None, password: None, all: false, mafiles_path: Some(".../maFiles"), passkey: None, verbosity: Debug, no_update_check: false, http_proxy: None, proxy_credentials: None, danger_accept_invalid_certs: false }, sub: None, code: CodeCommand { offline: false } }
INFO - reading manifest from .../maFiles
DEBUG - loading manifest: ".../maFiles/manifest.json"
INFO - Migrating manifest
DEBUG - deserializing manifest: version None
DEBUG - loading all accounts for migration
DEBUG - loading entry: ".../SDA/maFiles/steamname.maFile"
...
ERROR - Failed to migrate manifest: An unexpected error occurred during manifest migration: Failed to load some accounts: [DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 469) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 461) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 464) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 466) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 467) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 467) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 467) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 461) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 466) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 465) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 466) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 461) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 461) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 468) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 466) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 466) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 460) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 461) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 460) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 461) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 461) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 461) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 460) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 467) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 461) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 461) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 460) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 461) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 460) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 464) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 465) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 465) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 465) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 464) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 464) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 464) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 465) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 465) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 464) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 464) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 465) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 464) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 464) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 465) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 465) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 464) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 463) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 462) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 1519) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 1519) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 1519) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 1519) }), DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 1520) })]
...
DEBUG - Checking for updates to dyc3/steamguard-cli v0.12.2
DEBUG - No update available
@dyc3
Copy link
Owner

dyc3 commented Oct 24, 2023

So you initially created these maFiles with SDA, and continued using them with steamguard-cli, is that correct? What was the last version of steamguard-cli you used with these files before updating to 0.12.2?

@dyc3
Copy link
Owner

dyc3 commented Oct 25, 2023

Would you be able to pull down #338 to see if that makes it work? If it does, I'll publish a new release with it right away.

@spyfly
Copy link
Author

spyfly commented Oct 25, 2023

Would you be able to pull down #338 to see if that makes it work? If it does, I'll publish a new release with it right away.

Thanks for the quick reaction.

Just built the version from the PR, still the same error:

ERROR - Failed to migrate manifest: An unexpected error occurred during manifest migration: Failed to load some accounts: [DeserializationFailed(Error { path: Path { segments: [] }, original: Error("missing field `server_time`", line: 1, column: 469) })

@dyc3
Copy link
Owner

dyc3 commented Oct 25, 2023

That's weird, I just created a unit test for this and it's passing. Can you post the full -v debug logs unabbreviated?

@spyfly
Copy link
Author

spyfly commented Oct 25, 2023

That's weird, I just created a unit test for this and it's passing. Can you post the full -v debug logs unabbreviated?

Classical Layer 8 Error, I've used cargo to install using the toolchain instead of building from source.

So the PR can be merged, it fixes the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants