Statuses, results and messages
v0.0.3
This page lists the words a run, an item and the admin use: the status of a run, the outcome of an item, the messages a connection can give, the reasons an item is skipped or waits, and the choices of each conflict. Read it when a pill or a message on the Migration page or the Items page is not clear.
What it moves and how it works, on one page: Mishka CMS Migration.
Run statuses
| Status | Meaning | Row buttons |
|---|---|---|
| Connected | The run connected to the source and waits for its first dry run. | Dry run |
| Dry run running | The job is reading the source. The details show how far it is. | Cancel |
| Dry run ready | The dry run reported what an import would do. | Run again, Import, Cancel |
| Importing | The import is writing items. | Cancel |
| Imported | The import finished and saved its report. | Run again, Cancel |
| Failed | The job stopped. The details say why. | Run again, Cancel |
| Cancelled | You ended the run. It frees the site for another run and clears the stored password and file. | none |
Every row also has an Items icon. One run of a site is dry running or importing at a time. A second one is refused with Another migration of this site is still waiting or running. Try again once it is done.
Outcomes
An item's outcome is one of these. In a dry run it is what would happen.
| Outcome | Meaning |
|---|---|
| Created | A new record in the CMS. |
| Updated | A record an earlier run wrote, changed because the source changed. |
| Skipped | Nothing was written, with a reason. |
| Failed | The CMS refused it, with the CMS's reason. Nothing was overwritten. |
| Needs your decision | Two answers are both reasonable, so the item waits for you. |
Messages when you connect
These show under the connection, with a message naming the step.
| Message | What to do |
|---|---|
| Type the site's address, such as https://example.com. | Enter an http or https address with a host. |
| Nothing answered at this address. | Check the address and that the site is up. |
| No WordPress site answers at this address. | Something answered, but not a WordPress REST API. Another kind of site, or a plugin turned the REST API off. |
| WordPress did not accept this user and application password. If both are right, ask your host to let the Authorization header through. | A wrong password, an unknown user and a host that drops the header look the same. Check all three. |
| Enter the application password. | A required connection field is blank. The message names the field. |
| Choose the WordPress export file to read. | Pick the file in step 1. |
| This is not a WordPress export file, or it is damaged. Make the export again and choose its .xml file. | Export again with All content and choose the .xml file. |
| Could not connect to WordPress: reason. | Any other reason the source gave. |

A refused connection keeps the window on its first step and says why under the connection.
Messages on the Migration page
| Message | Meaning |
|---|---|
| Connected to site. The dry run started: it writes nothing to your site. | The new run saved and its dry run is queued. |
| Connected to site, but the dry run did not start. | The run is saved as Connected. The message gives the reason, such as another run of the site working. Press Dry run on its row later. |
| Dry run started. / Import started. / Run cancelled. | The row button's job is queued, or the run ended. |
| This source is no longer installed. | The source's plugin is gone. Install it again. |
| The job stopped without saying why. | A failed run with no reason. Run it again. |
Reasons an item is skipped or waits
| Reason | Meaning |
|---|---|
| Unchanged | The source did not change it since the last run. |
| Edited in the CMS, so kept | You changed the record in the CMS. A re-run keeps your version. |
| Deleted in the CMS, so left out | You deleted the record. The item is left out. |
| Archived in the CMS: restore it, or leave it archived | You archived the record. Decide what to do. |
| Left out by you / Left out by this run's choices | You, or a switch of the run, left it out. |
| Its parent is left out | A child waits for a parent that is out. |
| Its parent X is not imported yet: import it first, then this one again | An item whose parent has no record yet waits. The import does not bring the parent in for it. |
| Its parent X needs your decision: decide it and import it, then this one again | Decide the parent first. |
| Waits until its kinds are imported | It needs records of another kind first. |
| You may not change kinds on this site | Your account lacks the permission of that kind. |
| Mishka Blog is not installed | The Blog is missing, so posts, categories, tags and authors wait. |
| No public address at the source | A draft has no old address to redirect. |
| Its post was not imported | A redirect with no Blog post. |
| Already at its old address | The site already serves it at the address WordPress gave, so it needs no redirect. |
| What it points at was not imported | A redirect whose category, tag, page or file has no record. |
| What it points at is not public on the site, so it has no redirect | The record is a draft, inactive, or has no page. A redirect is never written to an address that does not answer. |
| The Blog's list of posts is served at its address | A list address that the Blog's list of posts already answers. |
| Its address was made ASCII, so the old address is not served | A page address, or a slug, that the site's languages keep nothing of was written as a generated ASCII name such as page-1a2b3c4d, so the old address does not match. See How slugs and page addresses are made. |
| Its file is not on the source's own site, so it is left there | The file is on another host. |
| Media cannot keep this type of file / Larger than Media takes / The file is not the type its name says, so it is left out | Media's own rules refused the file. |
| The source did not send the file | The download failed. |
| A user was created for the author, who signs in with Forgot password or a social sign-in | The author had no user. Their WordPress password cannot be carried over. |
| No user with this email on the site | The author is skipped because the Authors choice matches only. |
| Spam or in the trash at the source, so left out | A comment that WordPress marked as spam or deleted. |
| A plugin it needs is not loaded / A plugin failed on it | A plugin on an import event is missing or raised. Nothing is written behind it. |
Conflicts and their choices
These items wait for you. The first choice of a pair is the one the panel recommends where it recommends one.
| The item says | Choices |
|---|---|
| The site already has one at this address | Connect to the existing record; Import as new with another slug |
| A page of the site is at this post's address | Import with another slug, so its address is free; Leave out |
| The site already has its own | Keep the site's own; Use the WordPress one |
| The site's header already has its own links / The site's footer already has its own links | Keep the site's own; Replace with the imported menu |
| Choose where this menu goes | Header links; Footer links; A component; Leave out |
| The site already has a component with this name | Use the existing component; Leave out |
| Links to pages that are not live | Leave those links out of the menu; Publish the linked pages |
| Same file as another | Keep both; Use the original |
| Contains scripts or inline event handlers | Remove them; Keep them (I trust this content) |
| Widgets the CMS has no equivalent for | Import with the fallback HTML for those parts; Leave the page out |
| Its YouTube or Vimeo player needs Sites pages may embed, which you may not change | Wait for an admin; Import without the player |
| Its links depend on how addresses name the language | Wait; Write links for the site's current mode |
| The language is not one of the site's languages | Add its language to the site; Leave this translation out |
| The source does not say its language: the site's export file carries it | Import it in the site's main language; Wait, to import the site's export file instead |
| This tag, category or page was deleted in Mishka CMS after it was imported | Import it again; Leave it out |
| Mishka Blog is not installed | Wait for the Blog; Leave out |
| Its parent has no record in Mishka CMS yet | Import it without its parent, at the top level; Wait until its parent is imported |
Facts in a run's details
The About the source card of a run adds these once they are known:
| Fact | Says |
|---|---|
| Post addresses found | The structure the source's posts share, such as /%year%/%monthnum%/%postname%/, or No shape the posts share. |
| Posts outside that shape | How many posts do not follow it: N posts, each redirected to its new address. |
| Blog pages | What the run will do, or did, with the Blog's pages: Creates or Created a path, Moves or Moved one path to another, Needs your decision: /tag/:slug is already a page of yours; move it and run again., or waits for an admin who may set up the Blog's components and pages. |
| Redirects written | After an import, how many redirects it wrote or kept up to date. |
Warnings
| Warning | When it shows |
|---|---|
| Imported links may not match the site's language addresses | The source runs Polylang or WPML, or the site gives every language a prefix. It carries a Translations line, a Tip to set Language in addresses in Settings first, and a Suggestion for the main menu. |
| Users were created / User created | An import created users. Their WordPress passwords cannot be carried over, so they sign in with Forgot password or a social sign-in. |