magento / magento2

Prior to making any Submission(s), you must sign an Adobe Contributor License Agreement, available here at: https://opensource.adobe.com/cla.html. All Submissions you make to Adobe Inc. and its affiliates, assigns and subsidiaries (collectively “Adobe”) are subject to the terms of the Adobe Contributor License Agreement.
http://www.magento.com
Open Software License 3.0
11.5k stars 9.3k forks source link

Unable to send the cookie. Maximum number of cookies would be exceeded #7931

Closed gputignano closed 7 years ago

gputignano commented 7 years ago

It happens on a fresh magento v2.1.3 installation via composer. Apache/2.4.23 (Win32) OpenSSL/1.0.2h PHP/5.6.28 Versione del client del database: libmysql - mysqlnd 5.0.11-dev - 20120503 Estensione PHP: mysqli Documentazione Versione PHP: 5.6.28

When I try to access admin area I get:

There has been an error processing your request
Exception printing is disabled by default for security reasons.
Error log record number: 1761570144

In var/report I get:

a:4:{i:0;s:71:"Unable to send the cookie. Maximum number of cookies would be exceeded.";i:1;s:5183:"#0 C:\xampp\htdocs\magento2\vendor\magento\framework\Stdlib\Cookie\PhpCookieManager.php(116): Magento\Framework\Stdlib\Cookie\PhpCookieManager->checkAbilityToSendCookie('admin', 'luov8matk9kh36a...')
#1 C:\xampp\htdocs\magento2\vendor\magento\framework\Stdlib\Cookie\PhpCookieManager.php(98): Magento\Framework\Stdlib\Cookie\PhpCookieManager->setCookie('admin', 'luov8matk9kh36a...', Array)
#2 C:\xampp\htdocs\magento2\vendor\magento\module-backend\Model\Auth\Session.php(177): Magento\Framework\Stdlib\Cookie\PhpCookieManager->setPublicCookie('admin', 'luov8matk9kh36a...', Object(Magento\Framework\Stdlib\Cookie\PublicCookieMetadata))
#3 C:\xampp\htdocs\magento2\vendor\magento\framework\Interception\Interceptor.php(74): Magento\Backend\Model\Auth\Session->prolong()
#4 C:\xampp\htdocs\magento2\vendor\magento\framework\Interception\Chain\Chain.php(70): Magento\Backend\Model\Auth\Session\Interceptor->___callParent('prolong', Array)
#5 C:\xampp\htdocs\magento2\vendor\magento\framework\Interception\Interceptor.php(138): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Backend...', 'prolong', Object(Magento\Backend\Model\Auth\Session\Interceptor), Array, 'security_admin_...')
#6 C:\xampp\htdocs\magento2\vendor\magento\module-security\Model\Plugin\AuthSession.php(68): Magento\Backend\Model\Auth\Session\Interceptor->Magento\Framework\Interception\{closure}()
#7 C:\xampp\htdocs\magento2\vendor\magento\framework\Interception\Interceptor.php(142): Magento\Security\Model\Plugin\AuthSession->aroundProlong(Object(Magento\Backend\Model\Auth\Session\Interceptor), Object(Closure))
#8 C:\xampp\htdocs\magento2\var\generation\Magento\Backend\Model\Auth\Session\Interceptor.php(65): Magento\Backend\Model\Auth\Session\Interceptor->___callPlugins('prolong', Array, Array)
#9 C:\xampp\htdocs\magento2\vendor\magento\module-backend\App\Action\Plugin\Authentication.php(127): Magento\Backend\Model\Auth\Session\Interceptor->prolong()
#10 C:\xampp\htdocs\magento2\vendor\magento\framework\Interception\Chain\Chain.php(67): Magento\Backend\App\Action\Plugin\Authentication->aroundDispatch(Object(Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#11 C:\xampp\htdocs\magento2\vendor\magento\framework\Interception\Interceptor.php(138): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Backend...', 'dispatch', Object(Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor), Array, 'adminMassaction...')
#12 C:\xampp\htdocs\magento2\vendor\magento\module-backend\App\Action\Plugin\MassactionKey.php(33): Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#13 C:\xampp\htdocs\magento2\vendor\magento\framework\Interception\Interceptor.php(142): Magento\Backend\App\Action\Plugin\MassactionKey->aroundDispatch(Object(Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#14 C:\xampp\htdocs\magento2\var\generation\Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor.php(39): Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor->___callPlugins('dispatch', Array, Array)
#15 C:\xampp\htdocs\magento2\vendor\magento\framework\App\FrontController.php(55): Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#16 C:\xampp\htdocs\magento2\vendor\magento\framework\Interception\Interceptor.php(74): Magento\Framework\App\FrontController->dispatch(Object(Magento\Framework\App\Request\Http))
#17 C:\xampp\htdocs\magento2\vendor\magento\framework\Interception\Chain\Chain.php(70): Magento\Framework\App\FrontController\Interceptor->___callParent('dispatch', Array)
#18 C:\xampp\htdocs\magento2\vendor\magento\framework\Interception\Interceptor.php(138): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'install')
#19 C:\xampp\htdocs\magento2\vendor\magento\framework\Module\Plugin\DbStatusValidator.php(69): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#20 C:\xampp\htdocs\magento2\vendor\magento\framework\Interception\Interceptor.php(142): Magento\Framework\Module\Plugin\DbStatusValidator->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#21 C:\xampp\htdocs\magento2\var\generation\Magento\Framework\App\FrontController\Interceptor.php(26): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)
#22 C:\xampp\htdocs\magento2\vendor\magento\framework\App\Http.php(135): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#23 C:\xampp\htdocs\magento2\vendor\magento\framework\App\Bootstrap.php(258): Magento\Framework\App\Http->launch()
#24 C:\xampp\htdocs\magento2\index.php(39): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#25 {main}";s:3:"url";s:103:"/magento2/admin/admin/index/index/key/fc129c8ab7fb7cc037a101891fc63ed0635cbee765a836e40c90d7164ab90874/";s:11:"script_name";s:19:"/magento2/index.php";}
veloraven commented 7 years ago

@gputignano thank you for your feedback. Magento does not support the operating system you've listed. Please confirm that you can reproduce this issue on a supported platform. For an overview of supported technologies, see System Requirements.

magnetic5355 commented 7 years ago

@veloraven - even though @gputignano is using incompatible OS, it would not make a difference in this error. I also routinely see this error logged on debian, php7 and nginx.

southerncomputer commented 7 years ago

https://github.com/magento/magento2/blob/2.0.0/lib/internal/Magento/Framework/Stdlib/Cookie/PhpCookieManager.php#L29

delete your cookies for that hostname or increase 50 to a larger number! too many stale cookies for cookie manager!

OZZlE commented 7 years ago

Still getting this exception with the "fix" 50 there..

OZZlE commented 7 years ago

I am thinking "User Agent" is a browser and not the server side implementation..

"At any time, the user agent MAY "remove excess cookies" from the cookie store if the number of cookies sharing a domain field exceeds some implementation-defined upper bound (such as 50 cookies)." https://tools.ietf.org/html/rfc6265

Also it doesn't say that when the limit is reached that the site should crash with a fatal error :D

mark-netalico commented 7 years ago

Is there any plan to fix this? I'm definitely seeing this issue.

matthewhaworth commented 7 years ago

We've had this issue too, it's been exceeding 100 cookies for me. It appears to be duplicating some, which I wasn't even sure was actually possible..

iancassidyweb commented 7 years ago

Any update on this issue?

We're seeing the following error which is producing an error report and causing the site to fall over

"There has been an error processing your request Unable to send the cookie. Maximum number of cookies would be exceeded."

It looks like the MAX_NUM_COOKIES was raised to 50 (used to be 20) as part of: https://github.com/magento/magento2/commit/c945dbe42e5947e29fb977fd44300730e5c46bb7

However, would it not make more sense for it to be a system configuration value? Which gives merchants greater control over their website?

miguelbalparda commented 7 years ago

There is a proposed fix for this issue here https://github.com/magento/magento2/pull/10961 can you please check it and report back?

orlangur commented 7 years ago

In scope of another PR we found out that it was fixed in develop in a bit different RFC-compliant way: there is no need to raise limit, we can just decrease severity of the error (before it was throwing exception, now it just logs the warning).

Here is the commit which can be backported in order to get it fixed in 2.1.x: https://github.com/magento/magento2/pull/10516#issuecomment-322693152

orlangur commented 7 years ago

Closing as the fix for this issue is already available on Magento 2.2.0 branch.

Anyone, do not hesitate to create a backport to 2.1-develop if needed, see https://community.magento.com/t5/Magento-DevBlog/Pull-Requests-for-2-1-x-Patch-Releases/ba-p/65630 for details.

InternetMedicineMan commented 6 years ago

This problem is presenting itself for me on 2.2.3 it doesn't appear to be fixed. If it was fixed on 2.2.0 what happened?

orlangur commented 6 years ago

@InternetMedicineMan in 2.2.x this error is logged but not breaks the site.

InternetMedicineMan commented 6 years ago

@orlangur Thanks for the response but with respect it did break our site. It broke our site unexpectedly to the point where we launched a large site on Magento, and in less than 20 hours we reverted back to our previous platform. I'll explain the chain of events:

So we have a large ecommerce store on a different platform which already has a large number of cookies present. We prepared and launched Magento on 2.2.3 to replace this other platform. Everything was working well. I did see the occasional max cookie error from the logs but as you said it didn't seem to affect anything on the site, so we launched the site on a Thursday evening.

Friday we saw our log files exploding with Max Cookie errors. Evidently anyone who was a repeat visitor, who had visited our previous site once before, already had 40+ cookies on our primary domain, and now that they are coming to the new Magento site they were getting the Max Cookie error logged into the log files. Still not a big deal right? Because it's logged and not reported on the site?

Wrong, the implications were huge. No one could log into the site. A customer would come to the site, login and be redirected with no error message and NOT be logged in. Our staff was having the same issue. People would go to checkout and while trying to check out login and just be redirected to the checkout with no error message and NOT logged in. No one even knew why the problem was happening because there was no public error it was all behind the scenes. Until we looked and noticed the log files filling up with the Max cookie error. People could successfully login but with no room for new cookies, they weren't able to stay logged in with any session parameters. Started having staff reset their cookies and the problem was fixed, but that's hard to tell visitors of a busy ecommerce site.

About 16-18 hours later we reverted back to the old platform because we went from having $2,000 days to having our worst sales day of the year. And we had no solution we could implement easily. The best I got so far is to work up some kind of JS file that will look for old BigCommerce cookies and delete them, but I'm not sure if that's the best solution. Magento just doesn't seem to handle this issue well at all, and having 100,000 customers that can't login after switching is detrimental to our business.

orlangur commented 6 years ago

@InternetMedicineMan thanks for a really detailed explanation, real-world use cases are always welcomed. Let me share my thoughts on your situation.

I did see the occasional max cookie error from the logs but as you said it didn't seem to affect anything on the site, so we launched the site on a Thursday evening.

No one could log into the site. A customer would come to the site, login and be redirected with no error message and NOT be logged in. Our staff was having the same issue.

It looks like platform migration was not tested properly. From the code https://github.com/magento/magento2/blame/2.2.3/lib/internal/Magento/Framework/Stdlib/Cookie/PhpCookieManager.php#L208 I don't see any logic which may prevent customer from login. This needs to be further investigated on your side to find out a root cause.

And we had no solution we could implement easily. The best I got so far is to work up some kind of JS file that will look for old BigCommerce cookies and delete them, but I'm not sure if that's the best solution.

Well, the cheapest option is to increase this 50 to 100, 200 or whatever value is enough. I doubt this may solve problem with login though as to me it looks like browser simply started to drop some cookies.

A more appropriate solution is to handle legacy platform cookies properly before trying to set any new cookie on Magento side (!!! JS side is too late for this, such customization needs to be done on PHP side).

Magento just doesn't seem to handle this issue well at all, and having 100,000 customers that can't login after switching is detrimental to our business.

True, sounds pretty dramatic.

I don't see what Magento can do about this as it simply follows the RFC. When your application has too many cookies, it will stop working in some browsers and thus application needs to be fixed. It would be definitely good for core to add some clear explanation for end user if it is missing in circumstances you described. But exact steps to reproduce are necessary to make this happen.

bhagdave commented 6 years ago

We are getting this issue on 2.2.2 and it seems to be affecting our checkout. So could you confirm what version it was fixed in.

particle6 commented 6 years ago

I am also seeing this happen on 2.2.2 site that was upgraded from 1.9

InternetMedicineMan commented 6 years ago

On 2.2.3 still getting this issue regularly it seems. I just replicated the issue myself and noticed I had 67 cookies for the primary domain. Cleared them and everything worked again, but I'll be broken next week again. Primarily happens with people on staff that also login to admin, but seems to occur with customers also. We have a busy store and it's kind of rare but still several times a day. These are generally customers that have been to the site and it working fine before so it's not old cookies either. The big issues that occur is that a customer can't login. No error, no breaking site, customer just keeps getting redirected to the login screen. Or even worse they try to login from the checkout page and it redirects to the login screen and empties their shopping cart. We lose money then.

dan-ding commented 6 years ago

still issue on 2.2.3, 2.2.4, 2.2.5. I've seen cookies payloads from 60 to over 160.

@orlangur I think it IS magento's problem. Mostly because it's magento's code (or what they are delivering). At a minimum it looks like magento produces at least a quarter, if not more, of the the current cookie limit. That's not including paypal, google, etc...

Following the RFC would mean not making the application pump out cookies like hotcakes at brunch and instead manage them (like maybe use just one cookie!). Increasing the allowed limit of cookies is just cover for the real issue I agree.

i'm guessing at least some, if not all, of the reports folks are seeing is due to mobile session/localstorage issues. https://github.com/julien-maurel/jQuery-Storage-API/blob/d2ce10b0fb53d7cb919f14e70853a5c232477f93/jquery.storageapi.js#L484 from: https://github.com/julien-maurel/jQuery-Storage-API/blob/d2ce10b0fb53d7cb919f14e70853a5c232477f93/jquery.storageapi.js#L425

https://github.com/magento/magento2/blob/2.2-develop/lib/web/jquery/jquery.storageapi.min.js (minification doesn't help with discussions)

To quote the author:

sessionStorage is valid for one window/tab. To simulate that with cookie, we set a name for the window and use it for the name of the cookie

from the looks of the library, it defaults to setting a year expiration on those cookies. get a customer who visits the site every week in a different browser tab or window, and in less than a month they will be busting a gut on cookies.

this is totally magento's bag of beans.

dan-ding commented 6 years ago

I'm also guessing that non-mobile issues are private browsing.

orlangur commented 6 years ago

@dan-ding this is a different story. This bug report was about "Maximum number of cookies would be exceeded" and it is invalid.

If you able to reproduce abnormal cookie amount increase on a vanilla Magento 2 installation, please report a new issue.

dan-ding commented 6 years ago

@orlangur I can't put a vanilla magento 2 installation into production. What is a different story? I constantly see this error on client sites and I am more than sure it comes from (or is connected to) the above code.

dan-ding commented 6 years ago

@orlangur you can do this however with any magento 2 site: use firefox disable localstorage (about:config dom.storage.enabled == false)

browse around the catalog while on a product listing page, identify a product that really is interesting to you. open the product detail page in a new window/tab. decide the product isn't for you and close the product detail window/tab browse around some more. on a product listing page identify a product you'd like to know more about. open the product detail page in a new tab/window decide you don't want it and close the tab/window do this eight more times until you find a product you want. try to log in or add it to your cart if the site hasn't hellishly failed already. look at your cookies and see billions (exaggeration) of them. look at your magento log and see maximum cookies error

this is just one way to recreate the situation. it's not an invalid issue.

kornblumenapotheke commented 6 years ago

Same problem here! It seems to slow down my checkout process! main.WARNING: Cookie konnte nicht gesendet werden. Maxmiale Anzahl von Cookies wurde überschritten. {"store":"default","__utma":"110232473.1919046391.1488734394.1520665821.1524855184.50","__utmz":"110232473.1508695451.30.3.utmcsr=ticket.kornblumen-apotheke.at|utmccn=(referral)|utmcmd=referral|utmcct=/scp/tickets.php","m2e_bn_d36fbe63b0":"1","m2e_bn_7f9f7ee2a1":"1","m2e_bn_3af2059948":"1","m2e_bn_8a1096e0cf":"1","m2e_bn_b900cfd0c8":"1","m2e_bn_6fab8c401d":"1","m2e_bn_293956c735":"1","m2e_bn_5d80b15f50":"1","m2e_bn_753dd1022a":"1","m2e_bn_8917186c85":"1","m2e_bn_8e6c767787":"1","m2e_bn_c9615f45b1":"1","m2e_bn_a5d20a9694":"1","m2e_bn_6df58fdc49":"1","m2e_bn_9dad41836f":"1","m2e_bn_2f020a9687":"1","m2e_bn_59688a29a4":"1","m2e_bn_f04278e591":"1","m2e_bn_0187d03d49":"1","m2e_bn_f0dee7d257":"1","m2e_bn_e3947e8ec3":"1","m2e_bn_c3ad21ef83":"1","m2e_bn_993f4368a3":"1","m2e_bn_51391fdafa":"1","m2e_bn_a6cc1c08a2":"1","m2e_bn_44c5613270":"1","m2e_bn_9389a5df36":"1","m2e_bn_763fface38":"1","m2e_bn_535e511ebd":"1","m2e_bn_2000f5e772":"1","m2e_bn_bd5a7018be":"1","m2e_bn_5c6e46a15b":"1","m2e_bn_7520e8929f":"1","m2e_bn_01513fb387":"1","m2e_bn_2c3127656e":"1","m2e_bn_5c4fa839b8":"1","m2e_bn_2cf3a23970":"1","m2e_bn_4fc09bcd36":"1","m2e_bn_b5769a5ef9":"1","m2e_bn_73eaf63d5c":"1","m2e_bn_8a5e1e969c":"1","m2e_bn_0f52c4f994":"1","m2e_bn_edf8b1068e":"1","m2e_bn_1c4a064293":"1","m2e_bn_c6067a5bc1":"1","m2e_bn_aba18821c7":"1","m2e_bn_0fb2729de2":"1","m2e_bn_7dec32475b":"1","m2e_bn_c0b5a8e5b5":"1","m2e_bn_c8f3124a70":"1","m2e_bn_4f41b76b25":"1","m2e_bn_95934d03e2":"1","m2e_bn_e847c2a81c":"1","m2e_bn_db1a7437cd":"1","m2e_bn_f3459849e2":"1","m2e_bn_b6dd1ef3cd":"1","m2e_bn_59bebd20af":"1","m2e_bn_c0d403dfae":"1","m2e_bn_4b2c976e0c":"1","m2e_bn_2a424ac768":"1","m2e_bn_e1e3818269":"1","m2e_bn_9394c58532":"1","m2e_bn_22a770c201":"1","m2e_bn_c8bd3afb03":"1","m2e_bn_127cd6ba0e":"1","m2e_bn_b4cc23bbf4":"1","m2e_bn_5c9340929c":"1","m2e_bn_666a2a101b":"1","m2e_bn_51c880044a":"1","m2e_bn_1fb640214e":"1","m2e_bn_1e268e8205":"1","m2e_bn_7ab1843ea2":"1","m2e_bn_666d8718a9":"1","m2e_bn_25c455ddf5":"1","m2e_bn_7412b731d0":"1","m2e_bn_d8f13a14ae":"1","m2e_bn_f4ce01e15f":"1","m2e_bn_6152fd8faf":"1","m2e_bn_f25faa424a":"1","m2e_bn_bc22baa29e":"1","m2e_bn_6228b7f168":"1","m2e_bn_45aac84680":"1","m2e_bn_629b479e5e":"1","m2e_bn_0029607b01":"1","m2e_bn_f39d531d76":"1","m2e_bn_8848c072c3":"1","m2e_bn_215f57f170":"1","m2e_bn_304033419c":"1","m2e_bn_cf79bf4e13":"1","m2e_bn_048dcfd571":"1","session-set":"true","_ga":"GA1.2.1919046391.1488734394","hellobrave_cookiecompliance":"true","__atuvc":"7|33","private_content_version":"b72095003f83e852ac9028efc51795d7","PHPSESSID":"9339clb47n97t25pn09g5b5ov5","mage-translation-storage":"{}","mage-translation-file-version":"{}","form_key":"cjZdzhTQbS2ZKb8P","mage-cache-storage":"{}","mage-cache-storage-section-invalidation":"{}","mage-cache-sessid":"true","mage-messages":"","_gid":"GA1.2.839063560.1535293979","recently_viewed_product":"{}","recently_viewed_product_previous":"{}","recently_compared_product":"{}","recently_compared_product_previous":"{}","product_data_storage":"{}","section_data_ids":"{\"cart\":1535299837,\"directory-data\":1535299746,\"customweb_external_checkout_widgets\":1535299990,\"customer\":1535297661,\"compare-products\":1535297661,\"last-ordered-items\":1535297661,\"instant-purchase\":1535297661,\"review\":1535297661,\"wishlist\":1535297661,\"recently_viewed_product\":1535297661,\"recently_compared_product\":1535297661,\"product_data_storage\":1535297661,\"paypal-billing-agreement\":1535297661,\"checkout-fields\":1535297661,\"collection-point-result\":1535297661}","frontend_cid":"is0r5Lw1IJOBMnWO","user-agent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0"} []

erfanimani commented 6 years ago

@kornblumenapotheke though having the same symptoms, your root issue looks different and more related to the M2E pro module managing an eBay link (the cookie list looks healthy apart from the 90 m2e cookies).

avstudnitz commented 5 years ago

@orlangur This happened to us as well. Having a low limit for the maximum cookies IS a Magento issue. We'll report that to the Commerce support as well. Please reopen. Magento supports customizing, so telling us that it's no issue if it's not reproducable on a Vanilla installation is an invalid excuse.

orlangur commented 5 years ago

@avstudnitz Magento should contain limits corresponding to RFC so that store is available for maximum amount of customers. If in your case too much cookies were used, simply customize the limit, there is nothing to fix here from Magento side.

orlangur commented 5 years ago

@avstudnitz also, please check https://github.com/magento/magento2/issues/17195#issuecomment-445139580, the part which needs to be changed from Magento side is tracked there.

avstudnitz commented 5 years ago

@avstudnitz Magento should contain limits corresponding to RFC so that store is available for maximum amount of customers. If in your case too much cookies were used, simply customize the limit, there is nothing to fix here from Magento side.

Following RFC doesn't help if customers can't buy. I'd like to have the number customizable via backend - would such a PR be accepted? If there'd have been a config option, we'd have been aware of that potential problem. Especially Magento Commerce clients will probably run into this trap again and again - it's not too uncommon to have a few dozen cookies.

avstudnitz commented 5 years ago

@avstudnitz also, please check #17195 (comment), the part which needs to be changed from Magento side is tracked there.

Agree, with that change, it's not a big problem any more. It's not in 2.2.7 unfortunately.

Erfans commented 2 years ago

For people that still face this problem, the Quality Patch MDVA-12304 increases the MAX_NUM_COOKIES from 50 to 200. https://devdocs.magento.com/quality-patches/release-notes-commerce.html#v1012