How to revert changes on my dashboard

I have created a dashboard.
I go in revision history on left top side of the dashboard.
When I try to revert to previous version, I get error revert failed (screenshot attached)

Thanks

Hi @aseem.hegshetye
Without seeing the full error, then it's hard to tell - Admin > Troubleshooting > Logs.

[dc9451ab-5b07-4a8e-aca0-e0fd0ae7e7f8] 2021-09-14T12:27:36-05:00 DEBUG metabase.server.middleware.log POST /api/card/1/query 202 [ASYNC: completed] 143.2 ms (7 DB calls) App DB connections: 1/7 Jetty threads: 4/50 (3 idle, 0 queued) (120 total active threads) Queries in flight: 2 (0 queued); postgres DB 33 connections: 1/3 (0 threads blocked)
[dc9451ab-5b07-4a8e-aca0-e0fd0ae7e7f8] 2021-09-14T12:27:37-05:00 DEBUG metabase.server.middleware.log POST /api/card/2/query 202 [ASYNC: completed] 429.0 ms (17 DB calls) App DB connections: 0/7 Jetty threads: 4/50 (3 idle, 0 queued) (120 total active threads) Queries in flight: 1 (0 queued); postgres DB 33 connections: 0/3 (0 threads blocked)
[dc9451ab-5b07-4a8e-aca0-e0fd0ae7e7f8] 2021-09-14T12:27:37-05:00 DEBUG metabase.server.middleware.log POST /api/card/3/query 202 [ASYNC: completed] 507.6 ms (20 DB calls) App DB connections: 1/7 Jetty threads: 4/50 (3 idle, 0 queued) (120 total active threads) Queries in flight: 0 (0 queued); postgres DB 33 connections: 2/3 (0 threads blocked)
[dc9451ab-5b07-4a8e-aca0-e0fd0ae7e7f8] 2021-09-14T12:28:49-05:00 DEBUG metabase.server.middleware.log GET /api/dashboard/1 200 9.1 ms (12 DB calls) App DB connections: 0/7 Jetty threads: 5/50 (5 idle, 0 queued) (113 total active threads) Queries in flight: 0 (0 queued)
[dc9451ab-5b07-4a8e-aca0-e0fd0ae7e7f8] 2021-09-14T12:28:49-05:00 DEBUG metabase.server.middleware.log GET /api/revision 200 35.7 ms (26 DB calls) App DB connections: 0/7 Jetty threads: 5/50 (5 idle, 0 queued) (115 total active threads) Queries in flight: 0 (0 queued)
[dc9451ab-5b07-4a8e-aca0-e0fd0ae7e7f8] 2021-09-14T12:28:53-05:00 ERROR metabase.server.middleware.log POST /api/revision/revert 500 10.4 ms (27 DB calls)
{:via
[{:type java.lang.AssertionError,
:message "Assert failed: (integer? dashboard_id)",
:at [metabase.models.dashboard_card$dashboard invokeStatic "dashboard_card.clj" 55]}],
:trace
[[metabase.models.dashboard_card$dashboard invokeStatic "dashboard_card.clj" 55]
[metabase.models.dashboard_card$dashboard invoke "dashboard_card.clj" 55]
[metabase.models.dashboard_card$delete_dashboard_card_BANG_ invokeStatic "dashboard_card.clj" 162]
[metabase.models.dashboard_card$delete_dashboard_card_BANG_ invoke "dashboard_card.clj" 157]
[metabase.models.dashboard$revert_dashboard_BANG_ invokeStatic "dashboard.clj" 175]
[metabase.models.dashboard$revert_dashboard_BANG_ invoke "dashboard.clj" 158]
[metabase.models.revision$fn__36326$fn__36380$G__36329__36391 invoke "revision.clj" 19]
[metabase.models.revision$revert_BANG_$fn__36460 invoke "revision.clj" 169]
[toucan.db$do_in_transaction$fn__28605 invoke "db.clj" 147]
[clojure.java.jdbc$db_transaction_STAR_ invokeStatic "jdbc.clj" 807]
[clojure.java.jdbc$db_transaction_STAR_ invoke "jdbc.clj" 776]
[clojure.java.jdbc$db_transaction_STAR_ invokeStatic "jdbc.clj" 852]
[clojure.java.jdbc$db_transaction_STAR_ invoke "jdbc.clj" 776]
[clojure.java.jdbc$db_transaction_STAR_ invokeStatic "jdbc.clj" 789]
[clojure.java.jdbc$db_transaction_STAR_ invoke "jdbc.clj" 776]
[toucan.db$do_in_transaction invokeStatic "db.clj" 145]
[toucan.db$do_in_transaction invoke "db.clj" 142]
[metabase.models.revision$revert_BANG_ invokeStatic "revision.clj" 167]
[metabase.models.revision$revert_BANG_ doInvoke "revision.clj" 156]
[clojure.lang.RestFn invoke "RestFn.java" 619]
[metabase.api.revision$fn__80299 invokeStatic "revision.clj" 41]
[metabase.api.revision$fn__80299 invoke "revision.clj" 30]
[compojure.core$wrap_response$fn__14943 invoke "core.clj" 160]
[compojure.core$wrap_route_middleware$fn__14927 invoke "core.clj" 132]
[compojure.core$wrap_route_info$fn__14932 invoke "core.clj" 139]
[compojure.core$wrap_route_matches$fn__14936 invoke "core.clj" 151]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$wrap_route_matches$fn__14936 invoke "core.clj" 153]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955 invoke "core.clj" 200]
[metabase.server.middleware.auth$enforce_authentication$fn__57213 invoke "auth.clj" 14]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955 invoke "core.clj" 200]
[compojure.core$make_context$handler__14983 invoke "core.clj" 287]
[compojure.core$make_context$fn__14985 invoke "core.clj" 296]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 199]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955 invoke "core.clj" 200]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955 invoke "core.clj" 200]
[clojure.lang.AFn applyToHelper "AFn.java" 160]
[clojure.lang.AFn applyTo "AFn.java" 144]
[clojure.core$apply invokeStatic "core.clj" 665]
[clojure.core$apply invoke "core.clj" 660]
[metabase.server.routes$fn__84942$fn__84943 doInvoke "routes.clj" 57]
[clojure.lang.RestFn invoke "RestFn.java" 436]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955 invoke "core.clj" 200]
[compojure.core$make_context$handler__14983 invoke "core.clj" 287]
[compojure.core$make_context$fn__14985 invoke "core.clj" 296]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$wrap_route_matches$fn__14936 invoke "core.clj" 153]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$wrap_route_matches$fn__14936 invoke "core.clj" 153]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$wrap_route_matches$fn__14936 invoke "core.clj" 153]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 199]
[compojure.core$routes$fn__14955$f__14956$respond_SINGLEQUOTE___14957 invoke "core.clj" 197]
[compojure.core$make_context$fn__14985 invoke "core.clj" 297]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955 invoke "core.clj" 200]
[compojure.core$routes$fn__14955$f__14956 invoke "core.clj" 198]
[compojure.core$routes$fn__14955 invoke "core.clj" 200]
[metabase.server.middleware.exceptions$catch_uncaught_exceptions$fn__83031 invoke "exceptions.clj" 98]
[metabase.server.middleware.exceptions$catch_api_exceptions$fn__83028 invoke "exceptions.clj" 86]
[metabase.server.middleware.log$log_api_call$fn__84856$fn__84857$fn__84858 invoke "log.clj" 209]
[metabase.driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info invokeStatic "diagnostic.clj" 15]
[metabase.driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info invoke "diagnostic.clj" 9]
[metabase.server.middleware.log$log_api_call$fn__84856$fn__84857 invoke "log.clj" 201]
[toucan.db$_do_with_call_counting invokeStatic "db.clj" 216]
[toucan.db$_do_with_call_counting invoke "db.clj" 209]
[metabase.server.middleware.log$log_api_call$fn__84856 invoke "log.clj" 200]
[metabase.server.middleware.browser_cookie$ensure_browser_id_cookie$fn__84489 invoke "browser_cookie.clj" 30]
[metabase.server.middleware.security$add_security_headers$fn__68565 invoke "security.clj" 148]
[metabase.server.middleware.json$wrap_json_body$fn__84634 invoke "json.clj" 62]
[metabase.server.middleware.json$wrap_streamed_json_response$fn__84652 invoke "json.clj" 98]
[metabase.server.middleware.offset_paging$handle_paging$fn__68587 invoke "offset_paging.clj" 42]
[ring.middleware.keyword_params$wrap_keyword_params$fn__85199 invoke "keyword_params.clj" 55]
[ring.middleware.params$wrap_params$fn__85215 invoke "params.clj" 69]
[metabase.server.middleware.misc$maybe_set_site_url$fn__36084 invoke "misc.clj" 59]
[metabase.server.middleware.session$bind_current_user$fn__43868$fn__43869 invoke "session.clj" 257]
[metabase.server.middleware.session$do_with_current_user invokeStatic "session.clj" 238]
[metabase.server.middleware.session$do_with_current_user invoke "session.clj" 230]
[metabase.server.middleware.session$bind_current_user$fn__43868 invoke "session.clj" 256]
[metabase.server.middleware.session$wrap_current_user_info$fn__43855 invoke "session.clj" 216]
[metabase.server.middleware.session$wrap_session_id$fn__43841 invoke "session.clj" 162]
[metabase.server.middleware.auth$wrap_api_key$fn__57221 invoke "auth.clj" 27]
[ring.middleware.cookies$wrap_cookies$fn__85119 invoke "cookies.clj" 216]
[metabase.server.middleware.misc$add_content_type$fn__36067 invoke "misc.clj" 27]
[metabase.server.middleware.misc$disable_streaming_buffering$fn__36092 invoke "misc.clj" 76]
[ring.middleware.gzip$wrap_gzip$fn__85161 invoke "gzip.clj" 86]
[metabase.server.middleware.misc$bind_request$fn__36095 invoke "misc.clj" 93]
[metabase.server.middleware.ssl$redirect_to_https_middleware$fn__84875 invoke "ssl.clj" 38]
[metabase.server$async_proxy_handler$fn__84433 invoke "server.clj" 71]
[metabase.server.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a handle nil -1]
[org.eclipse.jetty.server.handler.HandlerWrapper handle "HandlerWrapper.java" 127]
[org.eclipse.jetty.server.Server handle "Server.java" 516]
[org.eclipse.jetty.server.HttpChannel lambda$handle$1 "HttpChannel.java" 383]
[org.eclipse.jetty.server.HttpChannel dispatch "HttpChannel.java" 556]
[org.eclipse.jetty.server.HttpChannel handle "HttpChannel.java" 375]
[org.eclipse.jetty.server.HttpConnection onFillable "HttpConnection.java" 273]
[org.eclipse.jetty.io.AbstractConnection$ReadCallback succeeded "AbstractConnection.java" 311]
[org.eclipse.jetty.io.FillInterest fillable "FillInterest.java" 105]
[org.eclipse.jetty.io.ChannelEndPoint$1 run "ChannelEndPoint.java" 104]
[org.eclipse.jetty.util.thread.strategy.EatWhatYouKill runTask "EatWhatYouKill.java" 336]
[org.eclipse.jetty.util.thread.strategy.EatWhatYouKill doProduce "EatWhatYouKill.java" 313]
[org.eclipse.jetty.util.thread.strategy.EatWhatYouKill tryProduce "EatWhatYouKill.java" 171]
[org.eclipse.jetty.util.thread.strategy.EatWhatYouKill run "EatWhatYouKill.java" 129]
[org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread run "ReservedThreadExecutor.java" 375]
[org.eclipse.jetty.util.thread.QueuedThreadPool runJob "QueuedThreadPool.java" 773]
[org.eclipse.jetty.util.thread.QueuedThreadPool$Runner run "QueuedThreadPool.java" 905]
[java.lang.Thread run nil -1]],
:cause "Assert failed: (integer? dashboard_id)",
:message "Assert failed: (integer? dashboard_id)"}

@aseem.hegshetye
Post "Diagnostic Info" from Admin > Troubleshooting.

Diagnostic info

{
"browser-info": {
"language": "en-US",
"platform": "MacIntel",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36",
"vendor": "Google Inc."
},
"system-info": {
"file.encoding": "UTF-8",
"java.runtime.name": "OpenJDK Runtime Environment",
"java.runtime.version": "11.0.11+9",
"java.vendor": "AdoptOpenJDK",
"java.vendor.url": "https://adoptopenjdk.net/",
"java.version": "11.0.11",
"java.vm.name": "OpenJDK 64-Bit Server VM",
"java.vm.version": "11.0.11+9",
"os.name": "Linux",
"os.version": "5.10.47-linuxkit",
"user.language": "en",
"user.timezone": "GMT"
},
"metabase-info": {
"databases": [
"h2",
"postgres"
],
"hosting-env": "unknown",
"application-database": "h2",
"application-database-details": {
"database": {
"name": "H2",
"version": "1.4.197 (2018-03-18)"
},
"jdbc-driver": {
"name": "H2 JDBC Driver",
"version": "1.4.197 (2018-03-18)"
}
},
"run-mode": "prod",
"version": {
"date": "2021-08-26",
"tag": "v1.40.3.1",
"branch": "release-x.40.x",
"hash": "0550b86"
},
"settings": {
"report-timezone": null
}
}
}

@aseem.hegshetye Okay, so it's a bug that sometimes happens, when trying to revert to the "First revision" of dashboards:
https://github.com/metabase/metabase/issues/15237 - upvote by clicking :+1: on the first post