Удаленный сервер возвратил ошибку 409 конфликт

I’m using Azure Table Storage to log visitor information from my MVC app, but it sometimes throws the following exception:

[WebException: The remote server returned an error: (409) Conflict.]
   System.Net.HttpWebRequest.GetResponse() +1399
   Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync(RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:677

[StorageException: The remote server returned an error: (409) Conflict.]
   Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync(RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:604
   Microsoft.WindowsAzure.Storage.Table.TableOperation.Execute(CloudTableClient client, CloudTable table, TableRequestOptions requestOptions, OperationContext operationContext) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Table\TableOperation.cs:44

It seems to happen when I first visit the website after a period of inactivity, then when I hit refresh, the page loads and every click from then on is fine.

Here is the part of the code that’s causing the exception:

  var visit = new TrackerVisitEntity(id, url, referer);
  var insertOperation = TableOperation.Insert(visit);
  _table.Execute(insertOperation);

Update

As identified in the comments AND both answers below, the problem is that sometimes the page is loaded twice in quick succession, and I’m using a GUID (unique to the user) as the partition key, and the current datetime as the row key, so this is causing duplicate entities and causing the exception.

Although Amor’s answer was more indepth, Dogu’s simple solution was the one I used, so I marked his correct. Thanks everyone.

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

Closed

tikhoarina opened this issue

Mar 2, 2022

· 1 comment

Comments

@tikhoarina

Подскажите, может ли множественный повтор ошибки следующего типа остановить интеграцию Диадок с СЭД?
Или возможно были массовые сбои в работе Диадок с 28.02.2022?

NpoComputer.DCX.Common.Exceptions.ConflictException: Запрос не может быть выполнен из-за конфликтного обращения к ресурсу на сервисе обмена Диадок. —> System.Net.WebException: Удаленный сервер возвратил ошибку: (409) Конфликт.
в System.Net.HttpWebRequest.GetResponse()
в Diadoc.Api.Http.HttpClient.PerformHttpRequest(HttpRequest request, HttpStatusCode[] allowedStatusCodes)
— Конец трассировки внутреннего стека исключений —
в NpoComputer.DCX.Client.Diadoc.DiadocClient.Invoke[T](Func`1 func)
в NpoComputer.DCX.Client.Diadoc.DiadocClient.AcceptInvitation(String ourOrganizationId, String counteragentId, String comment)
в NpoComputer.DCX.Common.ClientBase.AcceptInvitation(Organization organization, String comment)
в NpoComputer.Disi.ServiceAgent.Synchronization.SyncAgent.SendLocalContactChanges(DisiContact contact)
в NpoComputer.Disi.ServiceAgent.Synchronization.SyncAgent.SendLocalContactListChanges()

@ilzag

Добрый день!
Массовых ошибок не наблюдалось в тот период. Возникновение ошибки с кодом 409 зависит от того, как составлен запрос. Если вопрос актуален, пришлите, пожалуйста, текст и тело запроса, а также ответ сервера.

2 participants

@tikhoarina

@ilzag

When you attempt to view a website, you may see an error message that prevents you from accessing the page. If the server notices a conflict between the HTTP request and the resource, it will display a “409 Conflict” error.

Although this scenario can be frustrating, you can easily fix the 409 error. On the client side, you can fix typos in the requested URL, clear your browser cache, and uninstall browser extensions. Alternatively, you can solve this conflict as a website administrator by uninstalling core software and plugins or reviewing your server configuration.

In this post, we’ll give you an overview of the 409 error and its causes. Then, we’ll show you how to check your website for this issue and fix it if necessary. Let’s get started!

Check Out Our Video Guide to Fixing the “409 Conflict” Error

What Is the “409 Conflict” Error?

After making an HTTP request (such as loading a page), you may see an error message informing you that the request couldn’t be completed. In most cases, your browser will tell you what went wrong.

For example, a 400 Bad Request error will occur after a client-side error, like incorrect request syntax, corrupted browser cache, or large file sizes:

Screenshot of the 400 Bad Request error

400 Bad Request error

However, there are many other HTTP status codes. They belong to five different classes:

  • 100s: Informational status codes that indicate continuing requests.
  • 200s: Success codes for well-functioning requests.
  • 300s: Redirection messages explaining a redirect to another resource.
  • 400s: Error codes for client-side problems.
  • 500s: Error codes for server-side issues.

If you see a “409 Conflict” error, this is a 400 HTTP status code. In short, the request wasn’t completed because of a conflict with the resource’s current state.

Although this issue might seem complicated, you can usually resolve the conflict and try the request again. Fortunately, unlike server-side errors, the “409 Conflict” error code has some simple solutions.

Don’t worry- fixing the 409 error is easier than it may seem! 🚀 Keep reading to see exactly how to get it sorted… 💪Click to Tweet

What Causes the “409 Conflict” Error?

As its name suggests, the “409 Conflict” error results from some conflict in the HTTP request. It may happen because the requested resource is not in its expected state. Alternatively, the request itself could create a conflict if completed.

A 409 error usually occurs in response to a PUT request. This request updates the target resource. You can use a PUT request to make a new resource or replace an existing one.

However, if there are conflicting values in the PUT payload, they can cause a 409 error. For example, if you mistype certain fields, the server can notice these inconsistencies and reject the request.

You might also see a 409 response if you try to upload a file to your site that’s older than the existing one. Doing this will create a version control conflict that can result in a 409 error.

How To Locate the “409 Conflict” Error

To identify any 409 errors on your website, you can evaluate your HTTP requests and start troubleshooting them. This process will depend on the web hosting company for your site.

With a Kinsta hosting plan, you can manage your site logs in the MyKinsta dashboard. First, log in to your account and select the Sites tab. Then, choose the website you want to evaluate:

Choose sites in MyKinsta

MyKinsta Sites

This will open a page with basic information about your website. On the left-hand side, click on the Logs option:

Click on the Logs tab in MyKinsta

MyKinsta logs

After opening the Log viewer, you can see a record of specific errors on your website. If you don’t see a 409 error here, switch to access.log, which contains all of the requests processed by DevKinsta:

See records in Log Viewer

See records in Log Viewer

Here is the basic information you’ll see in each request:

  • Date and time
  • Request (method and URI)
  • HTTP error code or “200 OK” for successful requests
  • Bytes sent
  • HTTP referer
  • User-agent
  • HTTP X Forwarded for

You can look through the list of server requests to find any 409 HTTP status codes. Be sure to look for PUT requests since these can also contribute to conflict errors.

If needed, you can use the search bar to filter your results. Once you locate a “409 Conflict” error, you can proceed with the following solutions.

How To Fix the “409 Conflict” Error (5 Methods)

Even after you experience a 409 error, there are a few ways to resolve it. If you’re unsure what’s causing the issue, you may have to try a combination of different methods. Here are five of the most common fixes!

1. Check the Requested URL

As we mentioned earlier, the “409 Conflict” error can arise from incorrect information in a PUT request. When updating a resource, you’ll want to make sure that you entered its destination correctly.

Before you try more complex solutions, it’s a good idea to review the requested URL. If you manually entered this information, you may have accidentally made a typo that caused an error in the request.

If you made a mistake in this data, you can correct it and try the request again. Sometimes, this will enable you to continue with the request without causing a 409 error.

You can also try simply refreshing the page. Sometimes, old errors can disappear given enough time. Plus, the website owner could have already resolved the issue.

2. Clear Your Browser Cache

When you first view a website, your browser stores that page’s data in a cache. This way, you can easily reaccess those resources. Once you visit the site a second time, your browser will pull the cached data instead of requesting the resources from the server.

After you’ve recently fixed an error in your request, like a mistyped URL, you may still see the 409 error. Although the issue could already be resolved, the error message might still display because of your browser cache. In this case, you can clear your cache to remove the HTTP status code.

The method you use to do this will depend on your browser type. For Google Chrome users, you can start by clicking the three-dot icon in the top-right corner of the page. Then select More Tools > Clear Browsing Data:

Clear browsing data in Chrome

Clear browsing data in Chrome

In the new pop-up, select Cached images and files. If needed, you can also clear your browsing history, cookies, and other site data. Then, click on Clear data:

Clearing cached images and files in Google Chrome

Clearing cached images and files in Google Chrome

Although this will clear most of your cache, your browser will likely keep additional data that most users don’t want to be deleted. However, if you want to remove your full cache, navigate to the Advanced tab:

Chrome advanced cache data popup

Chrome advanced cache data

Here, you can select the data you want to delete from your cache. You can choose from these options:

  • Browsing history
  • Download history
  • Cookies and other site data
  • Cached images and files
  • Passwords and other sign-in data
  • Autofill form data
  • Site settings
  • Hosted app data

Once you specify the information to remove, click on Clear data. Now you can try the request again to see if the 409 error has been resolved!

3. Roll Back Recent Updates

Sometimes, HTTP error codes can be caused by conflicting software. To troubleshoot a “409 Conflict” error, consider downgrading your WordPress website. This downgrade can help you evaluate whether the core software conflicted with other tools on your site.

However, you’ll need to back up your website before starting this process. If not, you risk losing important changes you made with this new software update. After troubleshooting the issue, you can quickly restore your site to its former state.

Since Kinsta performs daily automatic backups, you can downgrade WordPress by restoring a previous backup. To do this, click on the Backups tab in your MyKinsta dashboard:

Backups in MyKinsta

MyKinsta backups

Then, select the backup you want to restore. Click on Restore to and choose whether to implement these changes in your staging environment or live site:

Restore backup in MyKinsta

Restore backup in MyKinsta

Finally, confirm the restoration by entering the given text:

Confirm backup restoration in MyKinsta

Confirm backup restoration

If you updated your website long ago, you’ll likely need to use another method of downgrading your site. Since Kinsta only saves your daily backups for 14 days, you may not be able to restore an older version.

As an alternative, you can install the WP Downgrade plugin. This tool will enable you to easily reinstall an older version of WordPress:

WP Downgrade plugin

WP Downgrade

First, install and activate the plugin. Then go to Settings > WP Downgrade:

Screenshot of WP Downgrade settings

WP Downgrade settings

Enter the exact number for the previous WordPress version to downgrade your software. When you’re finished, save your changes.

You may want to consider rolling back your computer update as well. For Windows users, you can do this in the update history settings. You can also downgrade a Mac computer by reverting to a Time Machine backup.

4. Uninstall Plugins and Extensions

If you don’t want to downgrade your website completely, you can deactivate your plugins and third-party tools. By removing this software, you’ll likely eliminate any conflicts.

To deactivate your plugins, go to the Plugins page on your WordPress dashboard. Then, select all of your plugins:

Select all plugins in WordPress

Select all plugins in WordPress

Click on the Bulk actions menu and select the Deactivate option. To finalize these changes, hit Apply:

Deactivate plugins in WordPress

Deactivate plugins in WordPress

Now you can try the request to see if you receive the 409 error. If the request is successful, you’ll know there was a conflict with one of your plugins.

To identify which plugin is causing the issue, activate each plugin one at a time. After each activation, check to see if the error happens again.

Once you locate the problematic plugin, you can delete it. If it performs a necessary task on your website, consider browsing the WordPress Plugin Directory for an alternative. Usually, you can find a different tool with similar functionality.

Alternatively, there could be an issue on the client-side of the request. To solve a 409 error, you can disable your browser extensions. On Chrome, go to More Tools > Extensions:

Chrome extensions

Chrome extensions

This will open a list of your enabled extensions. To disable them, make sure the switch next to each one is turned off:

Manage Chrome extensions

Manage Chrome extensions

You can also delete the extensions completely. This should eliminate any software conflicts. However, you should only do this with unnecessary tools.

5. Review Your Server Configuration

As a last resort, you can check your server configuration for errors. In MyKinsta, you can use the built-in Application Performance Monitoring (APM). With this APM tool, you can identify any long external requests, unoptimized plugin code, and slow database queries:

Kinsta APM homepage

Kinsta APM

To open the Kinsta APM, sign in to MyKinsta. Next, head to Sites > Kinsta APM:

MyKinsta APM

MyKinsta APM

Then, you’ll have to enable performance monitoring for a certain period. At the top of the page, click on Enable:

Enable Kinsta APM

Enable Kinsta APM

In the pop-up window, select the amount of time you want Kinsta to evaluate. You can enable a monitoring time window between 2 hours and 24 hours:

APM monitoring time

APM monitoring time

After you enable performance monitoring, you can use your results to troubleshoot the 409 error. You’ll be able to view all your requests and analyze your server’s response time:

APM monitoring results

APM monitoring results

Alternatively, you can use the Query Monitor plugin. This free tool enables you to see the performance level of your database queries, scripts, hooks and actions, block editor blocks, and more:

Query Monitor plugin

Query Monitor plugin

First, install and activate Query Monitor. Then, click on the new tab at the top of your WordPress dashboard:

Query Monitor tab

Query Monitor tab

Here, you can view reports for your site’s queries, requests, scripts, and other data. Under HTTP API Calls, you can see a list of any request errors:

Query Monitor results

Query Monitor results

With either of these tools, you can easily find 409 errors and discover the root cause of the issue. Then you don’t have to waste time troubleshooting other areas of your website.

There are several options to fix this error- and they’re all covered in this helpful guide 🚀Click to Tweet

Summary

When a conflict occurs during a request, you’ll likely see a 409 error. In this case, the server can’t send the relevant information because of a problem with the state of the requested resource. After identifying the conflicting requested values, you can try the request again.

To review, here’s how you can fix the “409 Conflict” error in WordPress:

  1. Check the requested URL.
  2. Clear your browser cache.
  3. Roll back recent updates.
  4. Uninstall plugins and extensions.
  5. Review your server configuration.

With Kinsta web hosting, we provide all the tools you need to troubleshoot performance errors as soon as they occur. Using our APM, you can review your external requests and fix conflicts to keep your website functioning properly!

I’m using Azure Table Storage to log visitor information from my MVC app, but it sometimes throws the following exception:

[WebException: The remote server returned an error: (409) Conflict.]
   System.Net.HttpWebRequest.GetResponse() +1399
   Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync(RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:677

[StorageException: The remote server returned an error: (409) Conflict.]
   Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync(RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:604
   Microsoft.WindowsAzure.Storage.Table.TableOperation.Execute(CloudTableClient client, CloudTable table, TableRequestOptions requestOptions, OperationContext operationContext) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Table\TableOperation.cs:44

It seems to happen when I first visit the website after a period of inactivity, then when I hit refresh, the page loads and every click from then on is fine.

Here is the part of the code that’s causing the exception:

  var visit = new TrackerVisitEntity(id, url, referer);
  var insertOperation = TableOperation.Insert(visit);
  _table.Execute(insertOperation);

Update

As identified in the comments AND both answers below, the problem is that sometimes the page is loaded twice in quick succession, and I’m using a GUID (unique to the user) as the partition key, and the current datetime as the row key, so this is causing duplicate entities and causing the exception.

Although Amor’s answer was more indepth, Dogu’s simple solution was the one I used, so I marked his correct. Thanks everyone.

Ошибка HTTP 409 Conflicting Request – это конфликт между запросом пользователя и сервером, к которому он обращается. Например, есть сайт, с которого пользователь хочет скачать файл с названием «файл1», но этот файл раньше был на сервере и его упоминание сохранилось в кеше. Однако, теперь файл называется “файл01» и сервер не понимает, что пользователь хочет от него. Это очень образный пример для того, чтобы максимально понятно определить значение ошибки.

Ситуации при которых возникает ошибка 409 HTTP сильно разнятся, но сводятся к конфликту между запросами. Иногда, задавая запрос, браузер сам уходит в цикличную обработку, и он либо закрывается, либо виснет так, что пользователю ничего не остается, как просто перезагрузить компьютер. Это явление часто замечают пользователи браузера Mozilla и Opera.

Выше упоминалось, что природа происхождения ошибки 409 кроется в конфликте запросов. Не всегда эти запросы относятся к пользовательским. Например, такая ошибка может возникнуть при конфликте файлов сайта, если они обращаются к разным данным в одном файле. В результате этого, сервер возвращает ошибку, которая на самом деле не имеет отношения к запросам пользователей.

Основные причины возникновения ошибки 409:

  • Пользователь обращается к данным, имеющим отличное значение или более новую версию. В итоге, сервер выдает ошибку 409, т.к. существует обновленная версия файла, страницы или скрипта.
  • Ошибка 409 появилась в результате конфликтующих запросов внутри файлов на сервере. Решить проблему может программист.
  • Использование прокси, которое конфликтует с определенными адресами или форматами запрашиваемых данных. Не путайте эту ошибку с ошибкой 407.
  • Более распространенная причина – троян или вирус, который блокирует запросы к определенным сайтам или подгружает файл, который имеет конфликт с конфигурацией браузера.

Ошибка 409 Conflicting Request в большинстве случае решается системным администратором или программистом, если это не касается заражения компьютера вирусом или трояном. Как проверить и какой программой расскажем ниже.

Как исправить ошибку 409 (Conflicting Request – Конфликт запросов)?

На некоторых сайтах приведен целый список шагов для устранения ошибки 409. Вот только проблема в том, что это не имеет смысла, т.к. эта ошибка касается программистов или разработчиков сайта / приложения. Конечный пользователь не сможет исправить ошибку 409, если только это не касается вируса или трояна.

  1. Чистим от вируса или трояна, чтобы убрать ошибку 409

Определить вирус/троян у вас или нет просто – установите программу Cureit от Dr.Web и просканируйте систему этой программой. Она бесплатная и не требует установки. Скачиваем только с официального сайта. В программе отмечаем все пункты для проверки и шагаем спать/на работу, т.к. сама проверка займет длительное время. На скриншоте ниже вы можете рассмотреть, как и что отмечать в программе. Свой антивирус лучше отключить перед проверкой.

Чистим от вируса или трояна, чтобы убрать ошибку 409

Чистим от вируса или трояна, чтобы убрать ошибку 409

Можно также использовать бесплатную утилиту от Касперского, но она довольно сложная и нужно понимать, какие скрипты вводить в консоль. Остальные программы – платные, поэтому не пишу о них. Кстати, не рекомендую скачивать бесплатные ключи, т.к. такие генераторы могут с собой принести тот самый вирус или троян. Не пожалейте 30$ в год за нормальную защиту.

  1. Исправляем ошибку 409 в конкретном браузере

В случае, если ошибка 409 Conflicting Request появляется буквально на каждом сайте, чтобы вы ни нажимали – это точно троян или вирус. Причем это должно происходить в любом браузере. Если нет – можете сразу удалить и заново установить браузер. Возможно произошел сбой конфигурации браузера.

Перед удалением браузера сохраните закладки!

Перед удалением браузера сохраните закладки!

Заранее нужно сохранить закладки, т.к. можно потерять все нажитое непосильным трудом. Делается это просто. На скриншоте выше вы видите пример сохранения настроек в браузере Mozilla. Аналогично делается и в остальных браузерах.

  1. Ошибка 409 в результате правок на сайте

Если вы являетесь администратором сайта или программистом… Вы знаете, что такое бэкап и как им пользоваться. Если не знаете – спросите в комментариях. Что с ним делать? Думаю, ответ знаете сами.

Последнее слово про ошибку

Ошибка 409 HTTP Conflicting Request редко относится к пользователю, если только это не вирус или троян. Почти 80% случаев с этой ошибкой касается разработчиков, поэтому разбираться в этом нужно точно не обычному пользователю. Все советы про чистку реестра и прочее – не актуальны. Это не относится к этой ошибке.

Если уж сильно хочется – установите программу CCleaner и пройдитесь по реестру с помощью этой программы. Во всяком случае это безопаснее, чем делать что-то лично ручками. Манипуляции с компьютером в случае с ошибкой 409 делать не стоит.

  • Удаленный сервер возвратил ошибку 407 требуется проверка подлинности посредника
  • Уволить управляющего банком ошибка
  • Удар нанесен тупым орудием возможно головой тип ошибки
  • Удаленный сервер возвратил ошибку 407 требуется аутентификация посредника
  • Удалить ошибку подушки безопасности obd2